什么是|| :在这个来自rpm spec文件的bash脚本行吗?

时间:2011-04-20 23:58:13

标签: bash rpm-spec

ln -s /var/log/$SERVICE_NAME $RPM_INSTALL_PREFIX/logs || :

在rpm规范文件中,每一行都以|| :

结尾

|| :有什么意义?为什么会这样?

5 个答案:

答案 0 :(得分:12)

它会导致忽略任何错误,因此不会取消rpm操作。

如果上一个命令失败,

||会导致下一个命令运行,:总是成功。

答案 1 :(得分:3)

它吞下退出代码。

如果它之前的东西失败(即,具有非零退出代码),

||会在它之后执行操作。 :是“无所事事”命令。把它们放在一起......

答案 2 :(得分:2)

`||` is OR operator. `:` means "do nothing". 

你的陈述说,“做软链接或什么都不做”

答案 3 :(得分:2)

我知道其他人已经回答了,但我更愿意提出:

command || /bin/true

恕我直言,这对于正在阅读bash脚本/ spec文件的下一个人来说更加明显。

答案 4 :(得分:1)

这只是意味着OR。您可以尝试像这样的小测试

ls nofile-here-like || echo 'Not here'

如果文件不存在echo将打印出来。尝试使用现有文件,它不会