如何在bash中完成逻辑OR

时间:2010-07-08 21:35:31

标签: bash logic

如果上一个命令的退出状态不是0,我想让命令执行。

即。 命令1 ^命令2 其中Command 2仅在Command 1失败时执行。

3 个答案:

答案 0 :(得分:7)

为此,请使用双管(||)运算符。

touch /asdf/fdasfds/fdasfdas || echo "Couldn't touch."

第二个命令仅在第一个命令返回非零时执行,完全按照您的指定执行。

答案 1 :(得分:3)

我认为应该提到OR与XOR(“exclusive or”)的含义不同。见下面的真值表。

       "or"          "xor"
P  Q  (( $P || $Q ))  (( ($P && ! $Q) || (! $P && $Q) ))
0  0  0               0 
0  1  1               1
1  0  1               1
1  1  1               0

答案 2 :(得分:1)

这应该有效:

command1 || command2