A afirmação na sua pergunta está incorreta. O Solaris até a versão 10 está fornecendo o verdadeiro shell legado Bourne como /bin/sh . Isso foi feito para não quebrar a compatibilidade com scripts antigos que podem falhar com um shell diferente. Esta escolha foi muito frustrante, apesar disso.
A maioria, se não, todas as versões restantes Unix e Unix, incluindo Solaris 11, fornecem um shell compatível com POSIX como /bin/sh porque POSIX ordena o comando sh para iniciar um shell POSIX, não o shell Bourne legado que não é compatível. /bin/sh geralmente é:
-
ksh88 ou ksh93 nas implementações comerciais do Unix
- um
bash on OS/X modificado (embora tenha sido zsh )
- um derivado
ash ou pdksh em outro BSDs
-
bash ou dash nas distribuições do Gnu / Linux.
Não é necessariamente um link, mas pode ser um verdadeiro executável em muitos sistemas, exceto o Gnu / Linux.
Curiosamente, apesar do que afirma a resposta mais votada à sua pergunta, não é a falta de recursos que levam os desenvolvedores de distribuição a instalar algo diferente do shell Bourne legado em /bin/sh , mas o desejo de ser o mais compatível com POSIX , ou seja, para se comportar como um Unix como o SO. O fato do shell POSIX ter mais recursos do que o shell Bourne legado é apenas um efeito colateral desse objetivo padrão de conformidade.
Também é um fato que alguns shells, notavelmente bash , se comportam de maneira diferente quando chamados de sh , e isso remove principalmente recursos do shell, e não o contrário.