Утверждение в вашем вопросе неверно. 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
, и это в основном удаляет функции из оболочки, а не наоборот.