Sur OSX 10.8, si vous comparez les binaires pour bash, sh et ksh, quelques options de shell différentes, elles ont la même taille. Si vous allez plus loin et cmp
les binaires, il ne semble y avoir qu'une différence d'un seul octet entre les binaires.
Cela semble superficiellement indiquer que tout le code pour prendre en charge tous les différents shells est disponible dans chaque binaire, mais le sous-ensemble auquel vous avez accès dépend du shell que vous finissez par exécuter.
- Quelqu'un peut-il confirmer que les fichiers binaires sont en fait compilés de cette façon?
- Du point de vue d'Apple, leur avantage est-il de combiner tous les coques de cette manière?
ksh et bash sont complètement différents, mais les binaires bash et sh sont pour la plupart identiques. Sh d'OS X est une version de bash qui:
sh -l
ne lit pas~/.bash_profile/
.echo
ainsiecho -e
et ne prend en charge aucune option.Le FCEDIT par défaut est ed in sh mais EDITOR ou ed in bash:
La source peut être téléchargée depuis http://opensource.apple.com/tarballs/ .
De l' homme bash :
Cependant, il n'émule pas d'autres aspects des coques Bourne d'origine.
Les shells Bourne d'origine ne sont plus maintenus, et / bin / sh est maintenant censé être un autre shell qui se conforme simplement à POSIX. Sh d' OS X permet d'utiliser des bashismes qui ne fonctionnent pas nécessairement avec / bin / sh sur d'autres plateformes (comme dash sur Ubuntu).
la source