如果上一个命令的退出状态不是0,我想让命令执行。
即。 命令1 ^命令2 其中Command 2仅在Command 1失败时执行。
答案 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