श या तो बॉर्न शेल या / बिन / श का अर्थ हो सकता है, जो कि अधिकांश आधुनिक प्लेटफार्मों पर कुछ अन्य (POSIX-अनुरूप) शेल है। "POSIX खोल" POSIX द्वारा परिभाषित सार शेल है , जिसे POSIX मोड में bash द्वारा कार्यान्वित किया जाता है, या डिफ़ॉल्ट रूप से ksh या डैश। / बिन / श को कभी-कभी POSIX शेल भी कहा जाता है, क्योंकि यह एक ऐसा शेल है जो अधिकांश प्लेटफार्मों पर POSIX के अनुरूप है। मूल बॉर्न गोले POSIX गोले नहीं हैं।
bashref में बैश और बॉर्न गोले के बीच अंतर की एक सूची है । पॉश मोड में बैश लगानेman bash
पर परिवर्तनों की एक सूची है ।
/ बिन / श, ओएस एक्स पर एक सिमलिंक या हार्ड लिंक नहीं है, लेकिन यह लगभग समान आकार / बिन / बैश है:
$ ls -li /bin/{ba,}sh
29631757 -r-xr-xr-x 1 root wheel 1333920 Jul 26 01:52 /bin/bash
29631758 -r-xr-xr-x 1 root wheel 1334000 Jul 26 01:52 /bin/sh
आदमी बैश :
यदि बैश को नाम श के साथ लगाया जाता है, तो यह पोस मानक के अनुरूप होने के साथ-साथ यथासंभव समीप के ऐतिहासिक संस्करणों के स्टार्टअप व्यवहार की नकल करने की कोशिश करता है।
बॉर्न गोले की नकल अन्यथा बहुत सीमित है। bash +B
(बॉर्न) वास्तव में ब्रेस विस्तार जैसी सुविधाओं को अक्षम कर देगा।
$ sh
$ echo {a,b}
a b
$ echo $BASH_VERSION
3.2.48(1)-release
$ bash +B
$ echo {a,b}
{a,b}
लेकिन भले ही आप POSIX मोड को अक्षम कर दें, लेकिन गूंज echo -e
डिफ़ॉल्ट रूप से व्यवहार करता है :
$ sh
$ shopt -uo posix
$ echo '1\b2'
2
उबंटू पर / बिन / श पानी का छींटा है , इसलिए कुछ बशीज़ ओएस एक्स पर / बिन / श के साथ काम करते हैं लेकिन उबंटू नहीं।
यदि आप वास्तव में मूल बॉर्न गोले के लिए (कुछ इस तरह) स्क्रिप्ट लिखना चाहते हैं, तो आप #!/usr/bin/env bash +B
इसके बजाय उपयोग कर सकते हैं ।
मुझे लगता है कि पॉश विनिर्देशों या बॉर्न गोले का हिस्सा नहीं हैं या अन्य गोले के साथ सब कुछ परीक्षण करने की सुविधाओं से बचने के लिए बैश के लिए स्क्रिप्ट लिखना आसान है।
sh
औरbash
): http://en.wikipedia.org/wiki/Comparison_of_command_shells