bash如果总是返回零?

ame*_*ior 2 bash if-statement return-value

如果语句总是返回零,那么执行bash吗?

我试过了

$ if false; then echo hi; fi;
$ echo $?
Run Code Online (Sandbox Code Playgroud)

它看起来像.

gni*_*urf 6

来自help if:

if: if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi

基于条件执行命令.

if COMMANDS列表已执行.如果其退出状态为零,则 then COMMANDS执行列表.否则,elif COMMANDS依次执行每个列表,如果其退出状态为零,then COMMANDS则执行相应的 列表并完成if命令.否则,else COMMANDS执行列表(如果存在). 整个构造的退出状态是最后执行的命令的退出状态,如果没有条件测试为真,则为零.

退出状态:返回最后执行的命令的状态.

(强调并格式化我的).

因此,如果没有任何else部分,并且要测试的命令以非零代码退出,则返回码为0.

(但是语句bash if语句总是返回零是错误的,如help if上面强调的部分所述).