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 is simply means OR. You can try small testing like this
If file not there echo will printed. Try with existing file, it will not
Your statement says, "do the soft linking or do nothing"
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…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 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.