बैश में वेरिएबल सेट या खाली कैसे चेक करें?

How Check Variable Is Set



एक चर को परिभाषित या अपरिभाषित किया जा सकता है। जब कोई चर घोषित या घोषित नहीं किया जाता है लेकिन कोई मान निर्दिष्ट नहीं किया जाता है तो चर सेट या अपरिभाषित नहीं होता है। जब किसी वेरिएबल को घोषित किया जाता है और एक वैल्यू के साथ असाइन किया जाता है तो वेरिएबल सेट हो जाता है। कई बार यह जानने की आवश्यकता होती है कि प्रोग्रामिंग उद्देश्यों के लिए विशेष चर सेट है या नहीं। चर की जाँच का एक महत्वपूर्ण उद्देश्य डेटा सत्यापन है या नहीं। एक चर सेट है या नहीं, यह जांचने के लिए बैश में अन्य मानक प्रोग्रामिंग भाषाओं की तरह कोई अंतर्निहित फ़ंक्शन नहीं है। लेकिन इस कार्य को करने के लिए बैश में एक विशेषता है। आप कैसे जांच सकते हैं कि वेरिएबल सेट है या नहीं बैश में इस ट्यूटोरियल में दिखाया गया है।

वाक्य - विन्यास:







[[ -वीचर]]या[[ -साथ मेंचर]]

'-v' या '-z' विकल्प का उपयोग यह जांचने के लिए किया जाता है कि वेरिएबल सेट है या अनसेट है। यदि चर सेट किया गया है तो उपरोक्त बूलियन अभिव्यक्ति सत्य वापस आ जाएगी और यदि चर सेट या खाली नहीं है तो झूठी वापसी होगी।



${चर+स्ट्रिंग}

पैरामीटर विकल्प यह जांचने का एक और तरीका है कि चर सेट या अनसेट है। यदि चर सेट है, तो स्ट्रिंग का मान वापस आ जाएगा अन्यथा शून्य वापस आ जाएगा।



उदाहरण -1: जाँच करें कि चर '-z' विकल्प का उपयोग करके सेट या अनसेट है

नाम की एक बैश फ़ाइल बनाएँ check_var1.sh निम्नलिखित स्क्रिप्ट के साथ। यहाँ, पहले ` अगर ` शर्त सच हो जाएगी और संख्या चर सेट नहीं है प्रिंट करेगा। अगले कथन में, 20 को वेरिएबल को सौंपा गया है, $num . दूसरा `if` कंडीशन असत्य लौटाएगा और संख्या निर्धारित है और संख्या का मान = 20 प्रिंट करेगा।





check_var1.sh

#!/बिन/बैश
#चेक करें कि वेरिएबल सेट है या नहीं
अगर [ -साथ में ${संख्या} ];फिर
फेंक दिया ''संख्या' चर सेट नहीं है'
अन्यथा
फेंक दिया ''संख्या' चर सेट है'
होना
#मान असाइन करें
एक पर=बीस
#चेक करें कि वेरिएबल सेट है या नहीं वैल्यू असाइन करने के बाद
अगर [ -साथ में ${संख्या} ];फिर
फेंक दिया ''संख्या' चर सेट नहीं है'
अन्यथा
फेंक दिया ''संख्या निर्धारित है और संख्या का मान =$num'
होना

स्क्रिप्ट चलाएँ।



$दे घुमा केcheckvar1.sh

उदाहरण -2: जाँच करें कि चर सेट है या पैरामीटर विकल्प का उपयोग करके सेट नहीं किया गया है

नाम की एक बैश फ़ाइल बनाएँ check_var2.sh और निम्न स्क्रिप्ट जोड़ें। यहां, वेरिएबल को एक स्ट्रिंग मान असाइन किया गया है, $str वेरिएबल की जांच करने से पहले सेट या अनसेट किया गया है। 'अगर' शर्त सच हो जाएगी और संदेश, 'str' चर सेट है और मान हैलो है प्रिंट करेगा।

check_var2.sh

#!/बिन/बैश
#चर सेट करें
पी=नमस्कार
# अगर str वैरिएबल सेट है, तो वर्ल्ड को चेक करने के लिए वैल्यू असाइन करें
चेकवाल=${str+World}
#चेक करें कि वेरिएबल सेट या अनसेट है
अगर [ $चेकवाल -ईक्यूदुनिया];फिर
फेंक दिया ''str' चर सेट है और मान है$ str'
अन्यथा
फेंक दिया ''str' चर सेट नहीं है'
होना

स्क्रिप्ट चलाएँ।

$दे घुमा केcheckvar2.sh

उदाहरण -3: जांचें कि चर खाली है या नहीं

नाम की एक बैश फ़ाइल बनाएँ check_var3.sh और निम्न स्क्रिप्ट जोड़ें। स्क्रिप्ट पहले कमांड-लाइन तर्क को एक चर में संग्रहीत करेगी, $argv जिसका परीक्षण अगले कथन में किया जाता है। आउटपुट होगा पहला तर्क खाली है यदि कोई तर्क पारित नहीं होता है अन्यथा पहले तर्क का मूल्य मुद्रित किया जाएगा।

check_var3.sh

#!/बिन/श
#पहला कमांड-लाइन तर्क मान पढ़ें
अर्जीवी='$ 1'
#चेक करें कि पहला तर्क मान प्रदान किया गया है या नहीं
[ -वी '$argv' ] && फेंक दिया 'पहला तर्क खाली है' ||
फेंक दिया 'पहले तर्क का मान है$argv'

बिना किसी तर्क के स्क्रिप्ट चलाएँ।

$दे घुमा केcheckvar3.sh

स्क्रिप्ट को तर्क के साथ चलाएँ।

$दे घुमा केcheckvar3.shपरीक्षण

निष्कर्ष

विभिन्न उदाहरणों का उपयोग करके इस ट्यूटोरियल में चर को सेट या अनसेट या खाली जांचने के विभिन्न तरीके दिखाए गए हैं। आशा है, यह ट्यूटोरियल उपयोगकर्ताओं को किसी भी बैश चर के परीक्षण के तरीके सीखने में मदद करेगा।