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

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

有什么意义,|| :为什么会出现?

4

5 回答 5

14

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

||如果上一个命令失败,则导致下一个命令运行,并且:始终成功。

于 2011-04-21T00:01:06.663 回答
3

它吞下退出代码。

||如果它之前的事情失败(即,具有非零退出代码),则执行它之后的事情。:是“什么都不做”命令。把它们放在一起……</p>

于 2011-04-21T00:02:05.077 回答
2
`||` is OR operator. `:` means "do nothing". 

您的声明说,“做软链接或什么都不做”

于 2011-04-21T00:04:35.533 回答
2

我知道其他人已经回答了,但我更喜欢说:

command || /bin/true

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

于 2011-07-09T14:11:24.277 回答
1

它只是意味着 OR。你可以试试这样的小测试

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

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

于 2011-04-21T00:06:05.597 回答