गुम उद्धरण
यदि हम अपनी स्क्रिप्ट को संपादित करते हैं और पहले के बाद वाले तर्क से पिछला उद्धरण हटा देते हैं
इको कमांड:
#! / Bin / bash
# परेशानी: सामान्य त्रुटियों को प्रदर्शित करने के लिए स्क्रिप्ट संख्या=1
यदि [$संख्या = 1 ]; तब
प्रतिध्वनि "संख्या 1 के बराबर है।
अन्य
प्रतिध्वनि "संख्या 1 के बराबर नहीं है।"
fi
#! / Bin / bash
# परेशानी: सामान्य त्रुटियों को प्रदर्शित करने के लिए स्क्रिप्ट संख्या=1
यदि [$संख्या = 1 ]; तब
प्रतिध्वनि "संख्या 1 के बराबर है।
अन्य
प्रतिध्वनि "संख्या 1 के बराबर नहीं है।"
fi
देखो क्या होता है:
[मुझे@लिनक्सबॉक्स ~]$ मुसीबत
/होम/मी/बिन/ट्रबल: पंक्ति 10: मिलान `"' की तलाश में अप्रत्याशित ईओएफ
/होम/मी/बिन/ट्रबल: पंक्ति 13: सिंटैक्स त्रुटि: फ़ाइल का अप्रत्याशित अंत
[मुझे@लिनक्सबॉक्स ~]$ मुसीबत
/होम/मी/बिन/ट्रबल: पंक्ति 10: मिलान `"' की तलाश में अप्रत्याशित ईओएफ
/होम/मी/बिन/ट्रबल: पंक्ति 13: सिंटैक्स त्रुटि: फ़ाइल का अप्रत्याशित अंत
यह दो त्रुटियाँ उत्पन्न करता है। दिलचस्प बात यह है कि त्रुटि संदेशों द्वारा रिपोर्ट की गई लाइन संख्याएं वहां नहीं हैं जहां लापता उद्धरण हटा दिया गया था, बल्कि कार्यक्रम में बहुत बाद में था। यदि हम लापता उद्धरण के बाद कार्यक्रम का अनुसरण करते हैं, तो हम देख सकते हैं कि क्यों। खूब जोर से पीटना वह समापन उद्धरण की तलाश तब तक जारी रखेगा जब तक कि उसे एक उद्धरण न मिल जाए, जो कि वह दूसरे के तुरंत बाद करता है गूंज आज्ञा। इसके बाद, खूब जोर से पीटना बहुत भ्रमित हो जाता है. अगले का वाक्यविन्यास if आदेश टूट गया है क्योंकि fi कथन अब उद्धृत (लेकिन खुली) स्ट्रिंग के अंदर है।
लंबी स्क्रिप्ट में, इस प्रकार की त्रुटि ढूँढना काफी कठिन हो सकता है। सिंटैक्स हाइलाइटिंग वाले संपादक का उपयोग करने से मदद मिलेगी, क्योंकि ज्यादातर मामलों में, यह उद्धृत स्ट्रिंग्स को अन्य प्रकार के शेल सिंटैक्स से विशिष्ट तरीके से प्रदर्शित करेगा। यदि इसका पूर्ण संस्करण शक्ति स्थापित है, सिंटैक्स हाइलाइटिंग को कमांड दर्ज करके सक्षम किया जा सकता है:
:वाक्यविन्यास चालू
:वाक्यविन्यास चालू