ln -s /var/log/$SERVICE_NAME $RPM_INSTALL_PREFIX/logs || :
В файле спецификации rpm каждая строка заканчивается на || :
|| :
Что означает значение || : и почему оно существует?
Это приводит к тому, что любая ошибка игнорируется, поэтому операция rpm не отменяется.
|| вызывает выполнение следующей команды, если предыдущая команда не выполнена, и : всегда выполняется успешно.
||
:
Глотает код выхода.
|| делает вещь после нее, если вещь до того, как она выходит из строя (то есть, имеет ненулевой код выхода). : - команда «ничего не делать». Положите их вместе ...
Я знаю, что другие ответили, но я предпочитаю ставить:
command || /bin/true
ИМХО, что делает его намного более очевидным для следующего человека, который читает скрипт / спецификацию bashфайл.
`||` is OR operator. `:` means "do nothing".
В вашем утверждении говорится: «делайте мягкие ссылки или ничего не делайте»
Это просто означает ИЛИ.Вы можете попробовать небольшое тестирование, как это
ls nofile-here-like || echo 'Not here'
Если файл не найден, эхо будет напечатано.Попробуйте с существующим файлом, он не будет