La afirmación en su pregunta es incorrecta. Solaris hasta la versión 10 está proporcionando el legado verdadero Bourne shell como /bin/sh
. Esto se hizo para no romper la compatibilidad con scripts antiguos que podrían fallar con un shell diferente. Sin embargo, esta elección fue muy frustrante.
La mayoría, si no todas, las versiones restantes de Unix y Unix, incluido Solaris 11, proporcionan un shell compatible con /bin/sh
POSIX porque POSIX exige que el sh
comando inicie un shell POSIX, no el shell Bourne heredado que no es compatible. /bin/sh
es generalmente :
ksh88
o ksh93
en las implementaciones comerciales de Unix
- un modificado
bash
en OS/X
(aunque solía ser zsh
)
- una
ash
o pdksh
derivada en otraBSDs
bash
o dash
en distribuciones Gnu / Linux.
No es necesariamente un enlace, pero puede ser un ejecutable real en muchos sistemas, pero Gnu / Linux.
Curiosamente, a pesar de lo que dice la respuesta más votada a su pregunta, no es la falta de características lo que lleva a los desarrolladores de distribución a instalar algo diferente al shell Bourne heredado, /bin/sh
sino el deseo de cumplir con POSIX lo más posible, es decir, comportarse como un Unix como sistema operativo. El hecho de que el shell POSIX tenga más funciones que el shell Bourne heredado es solo un efecto secundario de este objetivo de cumplimiento estándar.
También es un hecho que algunos shells, en particular bash
, se comportan de manera diferente cuando se los llama sh
, y esto elimina principalmente las características del shell, no al revés.