2

基于Rampion 的命令的命令

screen /bin/sh -c '/usr/bin/man `cat "$@"` > /tmp/manual | less /tmp/manual || read'

|| read并不意味着在命令中。read似乎是一个内置命令,我在 OS X 的手册中没有找到关于它的解释。

命令中的含义是什么||

4

2 回答 2

5

||几乎是“或”运算符。

在上面的代码示例中,它将首先运行 less /tmp/manual,如果它返回一个不正确的值,它将运行read。如果第一个命令返回真值,则由于短路,不执行读取命令。

感谢Michiel:请注意,运算符不是可交换的,因此它不是数学 OR。

于 2009-07-12T21:32:53.317 回答
3

米特玛罗所说的。它是 shell 的参数,在这种情况下是 /bin/sh。(从技术上讲,它不是一个“参数”(这是一个不同的术语),但它是 shell 的“语法”的一部分。)

有关详细信息,您可以阅读sh 上的手册页。您要查找的内容位于“列表”部分下。

片段:

OR 列表具有以下形式

command1 || command2

当且仅当 command1 返回非零退出状态时,才会执行 command2。

AND 和 OR 列表的返回状态是列表中执行的最后一个命令的退出状态。

于 2009-07-12T21:44:55.430 回答