मैं निम्न शेल स्क्रिप्ट चलाने की कोशिश कर रहा हूं, यह जांचना है कि कोई स्ट्रिंग न तो स्थान है और न ही खाली है। हालांकि, मुझे सभी 3 निर्दिष्ट तारों के लिए एक ही आउटपुट मिल रहा है। मैंने "[[" वाक्यविन्यास का उपयोग करने की कोशिश की है लेकिन इसका कोई फायदा नहीं हुआ है।जांचें कि क्या स्ट्रिंग न तो खाली है और न ही शेल स्क्रिप्ट में स्थान
str="Hello World"
str2=" "
str3=""
if [ ! -z "$str" -a "$str"!=" " ]; then
echo "Str is not null or space"
fi
if [ ! -z "$str2" -a "$str2"!=" " ]; then
echo "Str2 is not null or space"
fi
if [ ! -z "$str3" -a "$str3"!=" " ]; then
echo "Str3 is not null or space"
fi
मैं निम्नलिखित उत्पादन हो रही है:
यहाँ मेरी कोड है
# ./checkCond.sh
Str is not null or space
Str2 is not null or space
बहुत बहुत धन्यवाद, यह काम करता है। लेकिन मुझे आश्चर्य है कि असाइनमेंट अंतरिक्ष का उपयोग क्यों नहीं करता है जबकि तुलना करता है। –
^^ यह वाक्यविन्यास है। कमांड लाइन पर पहला शब्द कमांड है और बाद वाले लोग तर्क हैं। 'var = value [कमांड [args]] 'वाक्यविन्यास है, जिसमें एक चर वैल्यू असाइन किया जाता है। तुलना के लिए, '[' ('/ usr/bin/[') कमांड है और इसे var1,! = और var2 को 3 अलग-अलग तर्क होने की आवश्यकता है। var1! = var2 एक एकल तर्क है। – anishsane
@anishsane विवरण के लिए बहुत बहुत धन्यवाद, मुझे अब यह मिल गया है =) –