如果语句总是返回零,那么执行bash吗?
我试过
$ if false; then echo hi; fi;
$ echo $?
似乎就好了。
答案 0 :(得分: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
强调部分所述。)