मैंने अभी-अभी शेल स्क्रिप्टिंग में गहराई से जाना शुरू किया है, और मैंने हमेशा अपनी स्क्रिप्ट को एक फ़ाइल में फेंक दिया है, इसे चिह्नित किया है chmod +x
और फिर किया है /path/to/script.sh
और जो कुछ भी दुभाषिया है वह डिफ़ॉल्ट है इसके साथ अपना रास्ता है, जिसे मैंने मान लिया था कि यह zsh था क्योंकि यही है मैंने अपने खोल के लिए इस्तेमाल किया। जाहिरा तौर पर ऐसा लगता है कि यह सिर्फ /bin/sh
डिफ़ॉल्ट रूप से है, भले ही मैं स्क्रिप्ट को एक zsh प्रॉम्प्ट से निष्पादित करता हूं, क्योंकि मैंने अपनी स्क्रिप्ट में zsh-specific सामान डालना शुरू कर दिया है और जब तक मैं नहीं चलता तब तक यह विफल हो रहा है zsh /path/to/script.sh
।
इस बिंदु पर जाने के लिए, यहाँ मेरे प्रश्न हैं:
- जब कोई शेब लाइन (
#!/path/to/shell
) शुरुआत में नहीं है, तो कौन सी शेल स्क्रिप्ट निष्पादित करती है ? मुझे लगता है/bin/sh
लेकिन मैं पुष्टि नहीं कर सकता। - शेल स्क्रिप्ट लिखने के संदर्भ में "सर्वोत्तम प्रथाओं" को क्या माना जाता है जो किसी भी मंच पर चलेगा? (ठीक है, यह ओपन-एंड की तरह है)
क्या यह एक स्क्रिप्ट लिखना संभव है जो zsh का उपयोग करने की कोशिश करता है और अगर zsh उपलब्ध नहीं है तो वापस बश करने के लिए गिर जाता है? मैंने नीचे की तरह दो शबंग रेखाएँ डालने की कोशिश की है, लेकिन
bad interpreter: /bin/zsh: no such file or directory
अगर मैं इसे बिना किसी मशीन पर आज़माता हूँ तो यह केवल त्रुटि है ।#!/bin/zsh
#!/bin/bash