मेरे पास तीन चर हैं:
VAR1="file1"
VAR2="file2"
VAR3="file3"
&&
अगर इस तरह से कथन का उपयोग कैसे करें और ( ) ऑपरेटर:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
जब मैं इस कोड को लिखता हूं तो यह त्रुटि देता है। सही तरीका क्या है?
मेरे पास तीन चर हैं:
VAR1="file1"
VAR2="file2"
VAR3="file3"
&&
अगर इस तरह से कथन का उपयोग कैसे करें और ( ) ऑपरेटर:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
जब मैं इस कोड को लिखता हूं तो यह त्रुटि देता है। सही तरीका क्या है?
जवाबों:
तो अपनी अभिव्यक्ति को काम करने के लिए, करने के लिए परिवर्तन &&
करना -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 ....
आप इस प्रश्न के विवरण में आगे के विवरण पा सकते हैं : यदि कथन में कई यूनेरी ऑपरेटर हैं और कुछ संदर्भ दिए गए हैं जैसे कि परीक्षण में क्या अंतर है, [और [?] ।
&&
और||
अधिक एकल ब्रैकेट अंकन के साथ-a
और-o
, इसलिए सबसे पहले अंकन के लिए पोर्टेबल कोड जाने लिख रहे हैं, अन्यथा दूसरे और तीसरे को छोड़, खासकर जब से यह अजीब और अगर आप की जरूरत है पढ़ने के लिए कठिन हो सकता है समूह अभिव्यक्तियों के लिए।