條件式的測試標的物
|
一般程式語言一定有條件式用來控制流程,而最常見的測試是比對兩個數值、
兩個字串或兩個物件,而比對條件則是「相等」、「大於」、「小於」
、「不等」等。
作為一個程式語言,Shell 當然也提供數值與字串的比較。
但是,Shell 的強項並非數值運算,而是檔案與程序的處理。最需要下列相關測試:
檔案是否存在?讀寫權限為何?子程序的執行是否成功?等等。
Shell
提供一個內建指令,test,作為種種測試之用。(為了符合一般的使用習慣,測試指令
可用方括弧 ' [ 測試條件 ]' 取代)。
測試的條件以 'test' 指令的 option 的型態給定。 'test'
指令的執行成功與否,提供給
流程控制使用。
|
簡單的說,一個指令執行如果是成功的,其回傳的 Status 為0,
否則為其他數值。而條件式的測試標的物,就是回傳的 Status。
|
以下是可以一看即知的簡單實例:
|
使用者在撰寫一個 script 時,是可以利用 'exit n' 將
Status 設定為 n。當然正常使用者應該不會在執行成功時,將
Status 設定為 0 以外的值。 舉例如下:
|