什么是|| :在shell中意味着什么?

时间:2014-09-09 15:14:36

标签: shell

我正在看一个shell脚本代码,我不知道双管道(||)后跟冒号(:)的目的是什么,有人可以解释一下吗?如,

   $ <some_command> >/dev/null 2>&1 || :

2 个答案:

答案 0 :(得分:7)

||是布尔值或。

:是一个无操作命令,它不执行任何操作并以真实状态退出。

因此,anything || :无条件地返回true。

因此,some_command_that_may_fail ||:将永远成功。

如果正在使用set -e或ERR陷阱,这很重要,但如果命令失败,您不希望脚本退出或引发错误。

答案 1 :(得分:2)

:冒号是noop,双管是OR操作,所以......

执行some_command OR(如果some_command失败)执行:(这是no操作)

||表示仅在第一个命令命令失败时才执行秒。在这种情况下,第二个命令代表&#34;什么都不做&#34;