Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在bash中实现逻辑OR_Bash_Logic - Fatal编程技术网

如何在bash中实现逻辑OR

如何在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

我希望只有在前一个命令的退出状态不是0时,才执行该命令

i、 e。 命令1^命令2
其中,命令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

您知道没有办法将独占或短路设置为右(因为无论左操作数的值是什么,结果也始终取决于右操作数)?你所描述的是普通的,或者。我不知道为什么我没有看到这个。我的疏忽是愚蠢的。谢谢