screen /bin/sh -c '/usr/bin/man `cat "$@"` > /tmp/manual | less /tmp/manual || read'
|| read
并不意味着或在命令中。read
似乎是一个内置命令,我在 OS X 的手册中没有找到关于它的解释。
命令中的含义是什么||
?
screen /bin/sh -c '/usr/bin/man `cat "$@"` > /tmp/manual | less /tmp/manual || read'
|| read
并不意味着或在命令中。read
似乎是一个内置命令,我在 OS X 的手册中没有找到关于它的解释。
命令中的含义是什么||
?
||
几乎是“或”运算符。
在上面的代码示例中,它将首先运行 less /tmp/manual
,如果它返回一个不正确的值,它将运行read
。如果第一个命令返回真值,则由于短路,不执行读取命令。
感谢Michiel:请注意,运算符不是可交换的,因此它不是数学 OR。
米特玛罗所说的。它是 shell 的参数,在这种情况下是 /bin/sh。(从技术上讲,它不是一个“参数”(这是一个不同的术语),但它是 shell 的“语法”的一部分。)
有关详细信息,您可以阅读sh 上的手册页。您要查找的内容位于“列表”部分下。
片段:
OR 列表具有以下形式
command1 || command2
当且仅当 command1 返回非零退出状态时,才会执行 command2。
AND 和 OR 列表的返回状态是列表中执行的最后一个命令的退出状态。