寫過Sell腳本的同學都應該有這樣的感觸:偶爾多寫了或者少寫了一個空格,就會報出奇奇怪怪的錯誤,由于空格是不可見字元,是以排查此類錯誤最靠譜的方式是,不要犯這個錯誤。
Shell中有一個最基本的指令叫test,它可以測試數值、測試字元串和測試檔案屬性,是用得最多的指令,look:

當我們在執行分支語句、循環語句的時候,一般都離不開它,比如下面的腳本
#!/bin/bash
if test -e file && test -r file
then
cat file
fi
上述腳本的含義是:test一下檔案file,如果存在并可讀,就讓它在螢幕上顯示出來。但是上面那麼寫的确不好看。好看的代碼應該是這樣的:
#!/bin/bash
if [ -e file ] && [ -r file ]
then
cat file
fi
注意到:test 被改成成一對方括号 [ ] ,頓時好看多啦!可是你要看清楚,方括号的兩邊必須有空格,如果沒有,那麼等着被系統錯誤羞辱吧……
然而,有些地方又絕對不能有空格,坑你沒商量,比如變量定義指派:
name=Michael
上面的指派号兩邊不能加空格,如果有空格,那麼等着被系統錯誤羞辱吧……