Bash
的意思$?==1$?==1$? == 1&& 返回 0
我需要理解這個命令:
[ $? == 1 ] && return 0
該表達式
$?
計算為上一個命令的退出程式碼。
&&
是一個命令分隔符,當且僅當第一個命令返回退出程式碼為零時才會執行第二個命令。
[
或者test
是做各種對比測試的shell工具。我應該指出,
==
這裡使用的測試是錯誤的,因為它是用於字元串比較的;-eq
是數值比較的等式檢驗。So:
[ $? -eq 1 ] && return 0
將查看前一個命令的退出程式碼,並將其與1
. 如果匹配,return 0
則將執行該命令(從而繞過我認為是該測試所在函式中的後續命令)。
==
和的用法之間的區別在於-eq
它[ 01 -eq 1 ]
是正確的,[ 01 == 1 ]
而是錯誤的。