Pada OSX 10.8, jika Anda membandingkan binari untuk bash, sh, dan ksh, beberapa opsi shell yang berbeda, mereka berukuran sama. Jika Anda mengambil lebih jauh dan cmp
binari, tampaknya hanya ada perbedaan satu byte di antara binari.
Dangkal ini tampaknya menunjukkan bahwa semua kode untuk mendukung semua shell yang berbeda tersedia di setiap biner, tetapi subset yang Anda memiliki akses bergantung pada shell yang Anda jalankan.
- Adakah yang bisa mengkonfirmasi bahwa binari sebenarnya dikompilasi dengan cara ini?
- Dari sudut pandang Apple, apakah manfaatnya menggabungkan semua cangkang dengan cara ini?
ksh dan bash benar-benar berbeda, tetapi biner bash dan sh sebagian besar identik. OS X's sh adalah versi bash yang:
sh -l
tidak membaca~/.bash_profile/
.echo
bertingkah sepertiecho -e
dan tidak mendukung opsi apa pun.FCEDIT default adalah ed di sh tetapi EDITOR atau ed di bash:
Sumber dapat diunduh dari http://opensource.apple.com/tarballs/ .
Dari man bash :
Itu tidak meniru aspek lain dari kulit Bourne asli.
Shell Bourne asli tidak lagi dipertahankan, dan / bin / sh sekarang dimaksudkan untuk menjadi beberapa shell lain yang hanya sesuai dengan POSIX. OS X's sh memungkinkan penggunaan bashisms yang tidak selalu berfungsi dengan / bin / sh pada platform lain (seperti dash pada Ubuntu).
sumber