I searched for noop in bash (:), but was not able to find any good information. What is the exact purpose or use case of this operator?
I tried following and it’s working like this for me:
[mandy@root]$ a=11
[mandy@root]$ b=20
[mandy@root]$ c=30
[mandy@root]$ echo $a; : echo $b ; echo $c
10
30
Please let me know, any use case of this operator in real time or any place where it is mandatory to use it.
It’s there more for historical reasons. The colon builtin
:is exactly equivalent totrue. It’s traditional to usetruewhen the return value is important, for example in an infinite loop:It’s traditional to use
:when the shell syntax requires a command but you have nothing to do.The
:builtin dates all the way back to the Thompson shell, it was present in Unix v6.:was a label indicator for the Thompson shell’sgotostatement. The label could be any text, so:doubled up as a comment indicator (if there is nogoto comment, then: commentis effectively a comment). The Bourne shell didn’t havegotobut kept:.A common idiom that uses
:is: ${var=VALUE}, which setsvartoVALUEif it was unset and does nothing ifvarwas already set. This construct only exists in the form of a variable substitution, and this variable substitution needs to be part of a command somehow: a no-op command serves nicely.See also What purpose does the colon builtin serve?.