zsh पूरी तरह से बैश नहीं है। विभिन्न प्रकार के अंतर हैं। नए ज़श बाश के साथ अधिक संगत है (= ~ समर्थित, अब निष्पादन में अतिरिक्त ध्वज विकल्प हैं, आदि) लेकिन पूर्ण संगतता लक्ष्य नहीं है, "अनुकरण" के तहत भी नहीं।
उदाहरण के लिए, बैश सबस्ट्रिंग $ {foo: ऑफसेट: len} है, लेकिन zsh में यह $ foo [स्टार्ट, एंड] है और यह केवल एक सरल उदाहरण है।
zsh एक tsh और ksh प्रभावित शैल है जो कई चीजों को अपने तरीके से करता है; POSIX संगतता स्पष्ट रूप से एक लक्ष्य नहीं है, लेकिन डेवलपर्स पैच के लिए उत्तरदायी हैं जो विकल्प जोड़ते हैं / व्यवहार का अनुकरण करते हैं जो चीजों को POSIX के करीब मिलता है। लेकिन जब आप वास्तव में शेल की शक्ति में आने लगते हैं, तो आप केवल लिखने की स्क्रिप्ट बनाना शुरू करते हैं, और भी अधिक बैश से।
बैश POSIX sh + ksh + पांडित्य है, कुछ विशेषताओं के साथ अब zsh से कॉपी किया गया है। इसके पास भी केवल लिखने वाली स्क्रिप्ट हैं लेकिन क्योंकि इसमें कम शक्तिशाली ऑपरेटर हैं, आप अंत में zsh की संक्षिप्तता का उपयोग नहीं करते हैं और चीजें अधिक पठनीय हो सकती हैं ( व्हाट्सएप विभाजन से बचने के लिए सभी उद्धरणों को छोड़कर, बेवकूफ ksh- शैली $ $ का मतलब है) -ईलमेंट-ऑफ-एरे, ऑल-एलिमेंट्स-ऑफ-एरे, आदि)।
स्क्रिप्ट लिखना जो किसी भी शेल की शक्ति का पूरा फायदा उठाता है, जब तक आप विवश वातावरण में नहीं होते हैं (उदाहरण के लिए, सिस्टम आरसी स्क्रिप्ट लिखना, जहां कुछ FSs माउंट नहीं हो सकते हैं, आदि)। एक आदर्श के रूप में, पर्ल / पायथन / रूबी का उपयोग करें / जो कुछ भी इतना बड़ा है कि आपको अभिव्यक्ति की आवश्यकता बॉर्न श में न हो, यदि आप चाहते हैं कि अन्य इसे बनाए रखने में सक्षम हों। इंटरेक्टिव शेल (टैब पूर्ण प्रोग्रामिंग, आदि) से संबंधित चीजों के लिए शेल सामान रखें।
मैं zsh पर बैश का उपयोग नहीं करेगा। मैं साधारण स्क्रिप्ट के लिए नंगे श ओवरशर्ट का उपयोग करता हूं, या ऐसी भाषा पर स्विच करता हूं जहां साहचर्य सरणियों में सभ्य ऑपरेटर होते हैं (इसके अलावा, जहां वे फिर से, 'संक्षिप्त' होते हैं)। मैं हो सकता है अगर मुझे लगता है कि एक छोटी सी सुविधा के लिए एक मौजूदा साबित काम स्क्रिप्ट का विस्तार करने और अब यह पुनर्लेखन के लिए समय नहीं है की जरूरत है बैश के लिए एक श स्क्रिप्ट स्विच करें।