我在shell腳本中遇到了一些困難,請諒解test
命令。shell腳本測試命令混淆
從這段代碼在這裏:
if [ ! "$n_trig" -a "$i_trig" ]
then
usage
echo "Required options -n and -i are not present"
exit 1
fi
我希望在如果要執行的語句,因爲n_trip
和i_trig
都設置爲false。但是它不執行的命令列表。如果我刪除!
它。我不明白爲什麼。
這裏是sh -x ./script
輸出:
+ n_trig=false
+ i_trig=false
+ p_trig=false
+ getopts n:i:p: opt
+ '[' '!' false -a false ']'
這並不是說布爾變量不可靠;這是他們不存在。 Shell腳本只有一種類型的字符串,這就是爲什麼你需要,例如,用於字符串(「=」)和整數(「-eq」)比較的單獨運算符。 – chepner