什么是||在.screenrc中意味着什么?

时间:2009-07-12 21:30:27

标签: gnu-screen

基于 Rampion's command

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

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

||在命令中的含义是什么?

2 个答案:

答案 0 :(得分:5)

||几乎是'或'运营商。

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

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

答案 1 :(得分:3)

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

有关详情,请阅读man page on sh。您正在寻找的是“列表”部分。

段:

  

OR列表的格式为

command1 || command2
     当且仅当command1返回非零时才执行

command2   退出状态。

     

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