ksh और bash पूरी तरह से अलग हैं, लेकिन bash और sh binaries अधिकतर समान हैं। OS X का बाश का एक संस्करण है:
- है POSIX मोड सक्षम होना चाहिए। bash डिफ़ॉल्ट रूप से POSIX का अनुपालन नहीं करता है।
- अलग-अलग स्टार्टअप व्यवहार है। उदाहरण के लिए
sh -l
पढ़ता नहीं है ~/.bash_profile/
।
- डिफ़ॉल्ट रूप से xpg_echo सक्षम है। इसलिए
echo
काम करता है echo -e
और यह किसी भी विकल्प का समर्थन नहीं करता है।
डिफ़ॉल्ट FCEDIT sh में EDITOR या ed में ed है:
$ diff -y --suppress-common-lines -W 80 <(strings /bin/bash) <(strings /bin/sh)
> /bin/bash
${FCEDIT:-${EDITOR:-ed}} | ${FCEDIT:-ed}
@(#)PROGRAM:bash PROJECT:bash-86.1 | @(#)PROGRAM:sh PROJECT:bash-86.1
$ grep -rF '${FCEDIT:-${EDITOR:-ed}}' ~/Code/Source/bash-86.1/
bash-86.1/bash-3.2/builtins/fc.c:# define POSIX_FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-ed}}"
bash-86.1/bash-3.2/builtins/fc.def:# define POSIX_FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-ed}}"
स्रोत http://opensource.apple.com/tarballs/ से डाउनलोड किया जा सकता है ।
से आदमी पार्टी :
यदि बैश को नाम श के साथ लगाया जाता है, तो यह पोस मानक के अनुरूप होने के साथ-साथ यथासंभव समीप के ऐतिहासिक संस्करणों के स्टार्टअप व्यवहार की नकल करने की कोशिश करता है।
हालांकि यह मूल बॉर्न गोले के अन्य पहलुओं का अनुकरण नहीं करता है।
मूल बॉर्न शेल अब बनाए नहीं हैं, और / बिन / श अब कुछ अन्य शेल होने का मतलब है जो सिर्फ पोसिक्स का अनुपालन करता है। ओएस एक्स की शश उन बशियों का उपयोग करने की अनुमति देता है जो जरूरी नहीं कि अन्य प्लेटफार्मों पर / बिन / श के साथ काम करें (जैसे उबंटू पर डैश)।