?? bad-op.sh
字號:
#!/bin/bash# bad-op.sh: 嘗試一下對整數使用字符串比較. echonumber=1# 下面的"while循環"有兩個錯誤: #+ 一個比較明顯, 而另一個比較隱蔽. while [ "$number" < 5 ] # 錯! 應該是: while [ "$number" -lt 5 ]do echo -n "$number " let "number += 1"done # 如果你企圖運行這個錯誤的腳本, 那么就會得到一個錯誤消息: #+ bad-op.sh: line 10: 5: No such file or directory# 在單中括號結構([ ])中, "<"必須被轉義. #+ 即便如此, 比較兩個整數還是錯誤的. echo "---------------------"while [ "$number" \< 5 ] # 1 2 3 4do # echo -n "$number " # 看起來*好像可以工作, 但是 . . . let "number += 1" #+ 事實上是比較ASCII碼, done #+ 而不是整數比較. echo; echo "---------------------"# 這么做會產生問題. 比如: lesser=5greater=105if [ "$greater" \< "$lesser" ]then echo "$greater is less than $lesser"fi # 105 is less than 5# 事實上, 在字符串比較中(按照ASCII碼的順序)#+ "105"小于"5". echoexit 0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -