Wenn Sie unter OSX 10.8 die Binärdateien für bash, sh und ksh, einige verschiedene Shell-Optionen, vergleichen, haben sie dieselbe Größe. Wenn Sie weiter gehen und cmp
die Binärdateien, scheint es nur einen Einzelbyte-Unterschied zwischen den Binärdateien zu geben.
Dies scheint oberflächlich darauf hinzudeuten, dass der gesamte Code zur Unterstützung aller verschiedenen Shells in jeder Binärdatei verfügbar ist. Welche Teilmenge Sie jedoch zugreifen können, hängt davon ab, welche Shell Sie am Ende ausführen.
- Kann jemand bestätigen, dass die Binärdateien tatsächlich auf diese Weise kompiliert wurden?
- Ist es aus Apples Sicht von Vorteil, alle Schalen auf diese Weise zu kombinieren?
ksh und bash sind völlig unterschiedlich, aber die Bash- und sh-Binärdateien sind größtenteils identisch. OS X's sh ist eine Version von bash, die:
sh -l
liest nicht~/.bash_profile/
.echo
wirkt wieecho -e
und es keine Optionen unterstützen.Der Standard-FCEDIT ist in sh, aber EDITOR oder in bash angegeben:
Die Quelle kann von http://opensource.apple.com/tarballs/ heruntergeladen werden .
Von Mann schlagen :
Es emuliert jedoch keine anderen Aspekte der ursprünglichen Bourne-Muscheln.
Die ursprünglichen Bourne-Shells werden nicht mehr beibehalten, und / bin / sh soll nun eine andere Shell sein, die nur POSIX entspricht. Mit OS X sh können Bashismen verwendet werden , die auf anderen Plattformen (wie Dash unter Ubuntu) nicht unbedingt mit / bin / sh funktionieren.
quelle