2013-05-06 5 views
41

मैं तीन चर अगर:का उपयोग कर और (&&) ऑपरेटर में बयान बैश स्क्रिप्ट

VAR1="file1" 
VAR2="file2" 
VAR3="file3" 

का उपयोग कैसे करें और (&&) में ऑपरेटर अगर इस तरह बयान:

if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ] 
    then ... 
fi 

जब मैं लिखने यह कोड यह त्रुटि देता है। सही तरीका क्या है?

उत्तर

95

तो अपनी अभिव्यक्ति कार्य करने के लिए, &&-a के लिए बदलना चाल चल जाएगा।

यह इस तरह सही है:

if [ -f $VAR1 ] && [ -f $VAR2 ] && [ -f $VAR3 ] 
then .... 

या की तरह

if [[ -f $VAR1 && -f $VAR2 && -f $VAR3 ]] 
then .... 

या यहाँ तक कि

if [ -f $VAR1 -a -f $VAR2 -a -f $VAR3 ] 
then .... 

आप की तरह वहाँ दिए गए इस सवाल का bash : Multiple Unary operators in if statement में अधिक जानकारी और कुछ संदर्भों पा सकते हैं What is the difference between test, [ and [[ ?

+1

बहुत बहुत धन्यवाद! मैं इसे जल्द ही स्वीकार कर दूंगा! ;) –

+8

ध्यान दें कि [POSIX] (http://pubs.opengroup.org/onlinepubs/000095399/utilities/test.html#tag_04_140_16) '&&' और '||' के उपयोग को एकल ब्रैकेट नोटेशन के साथ ' -ए' और '-o', इसलिए यदि आप पोर्टेबल कोड लिख रहे हैं तो पहले नोटेशन के लिए जाएं, अन्यथा दूसरा और तीसरा छोड़ दें, खासकर जब से यह अभिव्यक्तियों को समूहबद्ध करने की आवश्यकता है तो इसे पढ़ने के लिए अजीब और कठिन हो सकता है। –

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