我想運行下面的shell腳本,它應該檢查一個字符串既不是空格也不是空格。但是,我得到的所有3個字符串的輸出都是相同的。我曾嘗試使用「[[」語法,但無濟於事。檢查字符串既不是空也不在shell腳本中的空格
這裏是我的代碼:
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 [command [args]]'是語法,其中一個變量被賦值。作爲比較,'['('/ usr/bin/[')是命令&它需要var1,!=&var2是3個獨立的參數。 var1!= var2是一個參數。 – anishsane
@anishsane非常感謝細節,我現在得到它=) –