ame*_*ior 2 bash if-statement return-value
如果语句总是返回零,那么执行bash吗?
我试过了
$ if false; then echo hi; fi;
$ echo $?
Run Code Online (Sandbox Code Playgroud)
它看起来像.
来自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上面强调的部分所述).