2011-11-09 15 views
6

मैं किसी और के कोड को देख रहा हूं और मुझे यकीन नहीं है कि इसका क्या अर्थ है। यह या तो एक परिवर्तनीय कॉल VARIABLE+set है जो एक अजीब परिवर्तनीय नाम है क्योंकि + है, या इसका मूल्यांकन किया गया है और इसमें Google के लिए मुश्किल है क्योंकि इसमें $ {} है;)

+0

यह नोटेशन अक्सर जीएनयू ऑटोकॉन्फ़ द्वारा उत्पन्न कॉन्फ़िगर स्क्रिप्ट में उपयोग किया जाता है। – anol

उत्तर

7

इसमें कुछ समय लगा, लेकिन मैं link पाया कि यह क्या करता है। यह बैश पैरामीटर-प्रतिस्थापन का एक रूप है जो "set" का मूल्यांकन करेगा यदि $VARIABLE अन्यथा सेट और शून्य हो गया है।

if [ -z "${VARIABLE+set}" ] ; then 
    echo "VARIABLE is not set" 
fi 

यह भी ध्यान रखें कि ${VARIABLE+set} बस के रूप में आसानी से किया जा सकता है ${VARIABLE+anything} दिलचस्प है: यह एक चर निम्न कार्य करके सेट है, तो आप जांच करने के लिए अनुमति देता है। + सेट का उपयोग करने का एकमात्र कारण यह है क्योंकि यह थोड़ा अधिक आत्म-दस्तावेज है (हालांकि मुझे यह प्रश्न पूछने के लिए पर्याप्त नहीं है)।

+0

बीटीडब्लू, यह सिर्फ एक बाश सुविधा नहीं है, यह शेल कमांड भाषाओं के लिए पॉज़िक्स मानक का हिस्सा है: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02 –

+0

और बहुत कुछ उपलब्ध है यूनिक्स शैल की शुरुआत, यानी बोर्न शैल। – shellter

संबंधित मुद्दे