Утверждение в вашем вопросе неверно. Solaris до версии 10 является обеспечение наследия истинного Bourne оболочки как /bin/sh. Это сделано для того, чтобы не нарушить совместимость со старыми скриптами, которые могут не работать с другой оболочкой. Этот выбор был очень разочаровывающим, хотя.
Большинство, если не все, оставшиеся Unix и Unix-подобные версии, включая Solaris 11, предоставляют POSIX-совместимую оболочку, /bin/shпоскольку POSIX предписывает shкоманде запустить оболочку POSIX, а не устаревшую оболочку Bourne, которая не совместима. /bin/shкак правило:
ksh88или ksh93на коммерческих реализациях Unix
- измененная
bashна OS/X(хотя это было zsh)
ashили pdkshпроизводные от другаBSDs
bashили dashв дистрибутивах Gnu / Linux.
Это не обязательно ссылка, но она может быть реальным исполняемым файлом во многих системах, кроме Gnu / Linux.
Интересно отметить, что, несмотря на то, что в ответе на ваш вопрос говорится о наиболее одобренном ответе, не отсутствие функций побуждает разработчиков дистрибутивов устанавливать нечто иное, чем унаследованная оболочка Bourne, /bin/shа желание быть как можно более совместимым с POSIX, то есть вести себя как Юникс как ОС. Тот факт, что оболочка POSIX имеет больше возможностей, чем унаследованная оболочка Bourne, является лишь побочным эффектом этой стандартной цели обеспечения соответствия.
Это также факт, что некоторые оболочки, в частности bash, ведут себя по-разному при вызове sh, и это в основном удаляет функции из оболочки, а не наоборот.