bash如果总是返回零?

时间:2017-12-03 21:24:39

标签: bash if-statement return-value

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

我试过

$ if false; then echo hi; fi;
$ echo $?

似乎就好了。

1 个答案:

答案 0 :(得分:6)

来自help if

  

ifif 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强调部分所述。)