${var+set}
परिवर्तनीय अनसेट होने पर set
यदि कुछ खाली स्ट्रिंग समेत कुछ भी सेट किया गया है तो कुछ भी विकल्प नहीं है। ${var:+set}
प्रतिस्थापन set
केवल तभी परिवर्तनीय एक गैर-खाली स्ट्रिंग पर सेट है। सेट चर की सूची में
if [ "${foo+set}" = set ]; then
# set, but may be empty
fi
if [ "${foo:+set}" = set ]; then
# set and nonempty
fi
if [ "${foo-unset}" = unset ]; then
# foo not set or foo contains the actual string 'unset'
# to avoid a potential false condition in the latter case,
# use [ "${foo+set}" != set ] instead
fi
if [ "${foo:-unset}" = unset ]; then
# foo not set or foo empty or foo contains the actual string 'unset'
fi
मुझे नहीं पता कि आपको किसने वोट दिया है, लेकिन आपका समाधान मेरे लिए काम करता है! – green69
मैंने पहली बार गलत सवाल का जवाब दिया। यहां एक सही उत्तर दिया गया है। –
मेरा डाउनवोट इसलिए है क्योंकि यह अनौपचारिक, बेकार और अक्षम है। खोल के लिए अंतर्निहित कार्यक्षमता है; इसके अतिरिक्त, आपके पास [बैकटिक्स का बेकार उपयोग] है (http://www.iki.fi/era/unix/award.html#backticks) और जाहिर है ['if' कथन क्या करता है इसकी अपूर्ण समझ।] (http://stackoverflow.com/questions/36371221/bash-if-statement-too-many-arguments/36371520#36371520) – tripleee