En OSX 10.8, si compara los binarios para bash, sh y ksh, algunas opciones de shell diferentes, son del mismo tamaño. Si lo lleva más lejos y cmp
los binarios, parece que solo hay una diferencia de un byte entre los binarios.
Esto parece indicar superficialmente que todo el código para admitir todos los shells diferentes está disponible en cada binario, pero a qué subconjunto tiene acceso depende del shell que termine ejecutando.
- ¿Alguien puede confirmar que los binarios se compilan de esta manera?
- Desde el punto de vista de Apple, ¿hay algún beneficio en combinar todos los proyectiles de esta manera?
terminal
bash
command-line
NS G
fuente
fuente
ksh y bash son completamente diferentes, pero los binarios bash y sh son en su mayoría idénticos. OS X's sh es una versión de bash que:
sh -l
no lee~/.bash_profile/
.echo
actúa comoecho -e
y no admite ninguna opción.El FCEDIT predeterminado se edita en sh pero EDITOR o ed en bash:
La fuente se puede descargar desde http://opensource.apple.com/tarballs/ .
De man bash :
Sin embargo, no emula otros aspectos de los proyectiles Bourne originales.
Los shells Bourne originales ya no se mantienen, y / bin / sh ahora está destinado a ser otro shell que simplemente cumple con POSIX. El sh de OS X permite usar bashisms que no necesariamente funcionan con / bin / sh en otras plataformas (como dash en Ubuntu).
fuente