1. 程式人生 > >shell裡 (())和set -u 用法

shell裡 (())和set -u 用法

腳本里寫有:

set -u

((ret=ret+$?))

ret沒定義,報錯 ret: unbound variable,導致指令碼直接返回狀態0.後面捕捉不到錯誤,如果命令列執行,就可以捕捉到錯誤。

具體原因:

set -u

Treat unset variables as an error when performing parameter expansion.  If expansion is attempted  on  an  unset  variable,  the shell prints an error message, and, if not interactive, exits with a non-zero status.

(())

①整數擴充套件。這種擴充套件計算是整數型的計算,不支援浮點型。((exp))結構擴充套件並計算一個算術表示式的值,如果表示式的結果為0,那麼返回的退出狀態碼為1,或者 是"假",而一個非零值的表示式所返回的退出狀態碼將為0,或者是"true"。若是邏輯判斷,表示式exp為真則為1,假則為0。