कृपया ध्यान दें, यह निर्माण [] && cmdजैसा नहीं है if .. fi।
कभी-कभी इसका व्यवहार इसके समान होता है और आप [] && cmdइसके बजाय उपयोग कर सकते हैं if .. fi। लेकिन कभी-कभी ही। यदि आपके पास अधिक है तो एक कमांड निष्पादित करने के लिए यदि स्थिति या आपको if .. else .. fiसावधान रहने की आवश्यकता है और तर्क को व्हाट्सएप करें।
कुछ उदाहरण:
[ -z "$VAR" ] && ls file || echo wiiii
के रूप में ही नहीं है
if [ -z $VAR ] ; then
ls file
else
echo wiii
fi
क्योंकि अगर lsअसफल echoहो जाएगा , तो निष्पादित किया जाएगा जो साथ नहीं होगा if।
एक और उदाहरण:
[ -z "$VAR" ] && ls file && echo wiii
जैसा है वैसा नहीं है
if [ -z "$VAR" ] ; then
ls file
echo $wiii
fi
हालांकि यह निर्माण एक ही कार्य करेगा
[ -z "$VAR" ] && { ls file ; echo wiii ; }
कृपया ध्यान दें ;कि प्रतिध्वनि महत्वपूर्ण होने के बाद भी होनी चाहिए।
तो ऊपर दिए गए कथन को हम पुनः कह सकते हैं
[] && cmd == यदि पहली कमांड सफल है, तो अगले एक को निष्पादित करें
if .. fi == यदि शर्त (जो कि टेस्ट कमांड भी हो सकती है) तो कमांड निष्पादित करें
के बीच पोर्टेबिलिटी के लिए [और केवल [[उपयोग करें [।
ifPOSIX संगत है। तो बीच चयन करने के अगर आपके पास [और ifअपने कार्य को और अपेक्षित व्यवहार को देखकर चुनें।
[ … ]बनाम[[ … ]]बनामtest …, वहाँ में और अधिक पूरा जवाब हैं यह ज्यादातर नकली सवाल ।