shell腳本給運維工做帶了很大的方便,但其中也有一些怪異的語法規則,老是容易給人挖坑。程序員
- 對空格的使用
- shell中另外一個怪異的地方是作一樣一件事能夠有好幾種表達方式:
- 好比變量引用,能夠是$myvar,也能夠是${myvar},從避免代碼看起來混亂的角度看,應該強制使用大括號將變量與其餘字符進行分隔比較合理。能夠對比下下面兩種狀況,哪種看起來更舒服,更容易區分哪裏是變量哪裏是字符串字面量。
- echo "there is "$num1" person and "$num2" room"
- echo "there is ${num1} person and ${num2} room"
- 好比循環,能夠用for,也能夠用while,還有until,實際上until用處並不大,通常都能用while代替掉,爲了一個不多用到的狀況設計一個專門的語法是不太值得的。
- 又好比函數定義中,如是不加return語句,就返回最後一條命令運行結果,這實在沒有必要,這種節省return的狀況反而容易把人給繞暈,看代碼的人得分析一番才搞得清這個函數要返回的倒底是什麼。
- 還好比特殊變量:$@和$*,都表示全部參數,雖然有一些小小區別,可是爲了這一點小區別設計兩個語法實在有點小題大做了!