Jeśli porównasz pliki bash, sh i ksh w OSX 10.8 z kilkoma różnymi opcjami powłoki, mają one ten sam rozmiar. Jeśli pójdziemy dalej i cmp
pliki binarne, wydaje się, że istnieje tylko jednobajtowa różnica między plikami binarnymi.
To powierzchownie wydaje się wskazywać, że cały kod do obsługi wszystkich różnych powłok jest dostępny w każdym pliku binarnym, ale do którego podzbioru masz dostęp, zależy od tego, którą powłokę wykonasz.
- Czy ktoś może potwierdzić, że pliki binarne są w rzeczywistości kompilowane w ten sposób?
- Z punktu widzenia Apple, czy ma jakąkolwiek korzyść z połączenia wszystkich powłok w ten sposób?
ksh i bash są całkowicie różne, ale pliki bash i sh są w większości identyczne. Sh systemu OS X to wersja bash, która:
sh -l
nie czyta~/.bash_profile/
.echo
działaecho -e
i nie obsługuje żadnych opcji.Domyślny FCEDIT jest edytowany w sh, ale EDITOR lub ed w bash:
Źródło można pobrać ze strony http://opensource.apple.com/tarballs/ .
From man bash :
Nie naśladuje jednak innych aspektów oryginalnych pocisków Bourne'a.
Oryginalne powłoki Bourne'a nie są już utrzymywane, a / bin / sh ma być teraz inną powłoką, która jest po prostu zgodna z POSIX. Sh OS OS X pozwala na użycie bashism , które niekoniecznie działają z / bin / sh na innych platformach (takich jak dash na Ubuntu).
źródło