如何在bash中实现逻辑OR
我希望只有在前一个命令的退出状态不是0时,才执行该命令 i、 e。 命令1^命令2如何在bash中实现逻辑OR,bash,logic,Bash,Logic,我希望只有在前一个命令的退出状态不是0时,才执行该命令 i、 e。 命令1^命令2 其中,命令2仅在命令1失败时执行 为此,请使用双管道(| |)操作符 touch /asdf/fdasfds/fdasfdas || echo "Couldn't touch." 第二个命令仅在第一个命令返回非零时执行,与您指定的完全相同。这应该可以: command1 || command2 我认为应该提到的是,that OR与XOR(“exclusive OR”)没有相同的含义。见下表 "o
其中,命令2仅在命令1失败时执行 为此,请使用双管道(
| |
)操作符
touch /asdf/fdasfds/fdasfdas || echo "Couldn't touch."
第二个命令仅在第一个命令返回非零时执行,与您指定的完全相同。这应该可以:
command1 || command2
我认为应该提到的是,that 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
您知道没有办法将独占或短路设置为右(因为无论左操作数的值是什么,结果也始终取决于右操作数)?你所描述的是普通的,或者。我不知道为什么我没有看到这个。我的疏忽是愚蠢的。谢谢