से bash
मैनपेज:
[[ expression ]]
- सशर्त अभिव्यक्ति की अभिव्यक्ति के मूल्यांकन के आधार पर 0 या 1 की स्थिति लौटाएं।
और, अभिव्यक्ति के लिए, विकल्पों में से एक है:
expression1 && expression2
- सत्य यदि दोनों सत्य हैं expression1
और expression2
सत्य हैं।
तो आप and
उन्हें निम्नानुसार एक साथ कर सकते हैं ( -n
इसके विपरीत है -z
ताकि हम छुटकारा पा सकें !
):
if [[ -n "$var" && -e "$var" ]] ; then
echo "'$var' is non-empty and the file exists"
fi
हालाँकि, मुझे नहीं लगता कि इस मामले में इसकी आवश्यकता है, -e xyzzy
यह सच है अगर xyzzy
फ़ाइल मौजूद है और काफी आसानी से खाली तारों को संभाल सकती है। यदि आप चाहते हैं तो आपको वास्तव में -z
गैर-खाली चेक की आवश्यकता नहीं है :
pax> VAR=xyzzy
pax> if [[ -e $VAR ]] ; then echo yes ; fi
pax> VAR=/tmp
pax> if [[ -e $VAR ]] ; then echo yes ; fi
yes
दूसरे शब्दों में, बस उपयोग करें:
if [[ -e "$var" ]] ; then
echo "'$var' exists"
fi
bash
; हालाँकि, "बशीज़" का पूरा फायदा उठाने के लिए, @ paxdiablo का जवाब देखें।