कृपया ध्यान दें, यह निर्माण [] && 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
== यदि शर्त (जो कि टेस्ट कमांड भी हो सकती है) तो कमांड निष्पादित करें
के बीच पोर्टेबिलिटी के लिए [
और केवल [[
उपयोग करें [
।
if
POSIX संगत है। तो बीच चयन करने के अगर आपके पास [
और if
अपने कार्य को और अपेक्षित व्यवहार को देखकर चुनें।
[ … ]
बनाम[[ … ]]
बनामtest …
, वहाँ में और अधिक पूरा जवाब हैं यह ज्यादातर नकली सवाल ।