ln -s /var/log/$SERVICE_NAME $RPM_INSTALL_PREFIX/logs || :
In the rpm spec file every line ends with || :
What is the significance of the || :
and why is it there?
ln -s /var/log/$SERVICE_NAME $RPM_INSTALL_PREFIX/logs || :
In the rpm spec file every line ends with || :
What is the significance of the || :
and why is it there?
It causes any error to be ignored so that the rpm operation isn't canceled.
||
causes the next command to run if the previous command failed, and :
always succeeds.
It swallows the exit code.
||
does the thing after it if the thing before it fails (i.e., has a non-zero exit code). :
is the “do nothing” command. Put them together…
`||` is OR operator. `:` means "do nothing".
Your statement says, "do the soft linking or do nothing"
I know others have answered, but I prefer to put:
command || /bin/true
IMHO that makes it a lot more obvious to the next person who is reading the bash script/spec file.
It is simply means OR. You can try small testing like this
ls nofile-here-like || echo 'Not here'
If file not there echo will printed. Try with existing file, it will not