我不禁注意到使用比較運算符如test
命令的參數有很多shell代碼,而不是符號。shell的二進制運算符兼容性
例如,使用test
測試如果外殼沒有收到參數:
if test $# -eq 0
then
echo "No arguments received"
fi
我們爲什麼不能有更多,比如說,傳統的,直觀的,熟悉的,普遍的,並且,可讀標誌更換-eq
與==
?所以,我們有以下幾點:
if test $# == 0
then
echo "No arguments received"
fi
這同樣與其他運營商相比< < = =>>。
我假設這背後必然存在一些技術原因(可能是兼容性問題?)贊成-eq
格式而不是==
,但我不知道它們。
這正是我一直在尋找的!使用字符串比較運算符進行整數比較還有什麼副作用? – melvynkim
它主要是這個 - 按字母順序排列的數字順序,以及整數規範化。這在8月份尤其重要,因爲前導零表示八進制表示法,'date +%m'開始返回無效數字'08'。 –