मैं सीख रहा हूं कि कैसे set
अपनी स्क्रिप्ट में विभिन्न विकल्पों का कुशलता से उपयोग किया जाए और set -u
जो मेरी स्क्रिप्ट से बाहर निकलने के लिए एकदम सही प्रतीत होता है यदि कोई चर ठीक से सेट नहीं होता है (उपयोगकर्ताओं को हटा रहा है)। आदमी पृष्ठ के अनुसार , set -u
और set -e
निम्नलिखित करता है ...
-e Exit immediately if a command exits with a non-zero status.
-u Treat unset variables as an error when substituting.
मैंने इस कार्यक्षमता का परीक्षण करने के लिए एक परीक्षण स्क्रिप्ट बनाई, लेकिन यह अपेक्षित रूप से काम नहीं करता है। शायद कोई मुझे अपने मुद्दे को बेहतर ढंग से समझा सके और मैं कहाँ गलत व्याख्या कर रहा हूँ? टेस्ट स्क्रिप्ट नीचे है। धन्यवाद।
set -e
set -u
testing="This works"
echo $?
echo ${testing}
testing2=
echo $?
echo ${testing2}
testing3="This should not appear"
echo $?
echo ${testing3}
मुझे उम्मीद है कि स्क्रिप्ट 0 और "यह काम करती है" प्रदर्शित होगी , और फिर ${testing2}
सेट नहीं होने पर विफल हो जाएगी ।
इसके बजाय मैं दिखाया गया हूँ 0 और "यह काम करता है" , द्वारा पालन 0 और फिर 0 यह प्रकट नहीं करना चाहिए
क्या कोई कुछ ज्ञान प्रदान कर सकता है? धन्यवाद।