मेरे पास एक शेल स्क्रिप्ट है जहां हमारे पास निम्नलिखित लाइनें हैं if [ -z "$xyz" ]
और if [ -n "$abc" ]
, लेकिन मुझे यकीन नहीं है कि उनका उद्देश्य क्या है। क्या कोई समझा सकता है?
मेरे पास एक शेल स्क्रिप्ट है जहां हमारे पास निम्नलिखित लाइनें हैं if [ -z "$xyz" ]
और if [ -n "$abc" ]
, लेकिन मुझे यकीन नहीं है कि उनका उद्देश्य क्या है। क्या कोई समझा सकता है?
जवाबों:
आप पार्टी के ऑपरेटरों के लिए एक बहुत अच्छा संदर्भ पा सकते हैं यहाँ । यदि आप एक अलग शेल का उपयोग कर रहे हैं, तो बस खोज करें <my shell> operators
और आपको वह सब कुछ मिलेगा जिसकी आपको आवश्यकता है। आपके विशेष मामले में, आप उपयोग कर रहे हैं:
-n
string is not null.
-z
string is null, that is, has zero length
चित्रित करना:
$ foo="bar";
$ [ -n "$foo" ] && echo "foo is not null"
foo is not null
$ [ -z "$foo" ] && echo "foo is null"
$ foo="";
$ [ -n "$foo" ] && echo "foo is not null"
$ [ -z "$foo" ] && echo "foo is null"
foo is null
man test
या man [
आप कमांड का परीक्षण करने के लिए सभी विकल्प देंगे। इस स्थिति में, -n यह देखने के लिए परीक्षण कर रहा है कि क्या $ abc की सामग्री में शून्य-शून्य लंबाई है और -z यह देखने के लिए परीक्षण कर रही है कि क्या $ xyz की सामग्री शून्य-लंबाई वाली स्ट्रिंग है।
man test
(हमेशा?) बाहरी-प्रोग्राम संस्करण के लिए मैन पेज देता है, जो (GNU-coreutils संस्करण के लिए कम से कम) स्पष्ट रूप से चेतावनी देता है कि कुछ (IME अधिकांश) शेल में एक अंतर्निहित संस्करण होता है जो अलग हो सकता है।