We know && means logical AND, so:
true && true => true
false && true => false
When we work in Shell (Bash here), successful command call returns 0. Does the shell change 0 to non-zero before AND operation? Or Shell just reverse the normal logics?
As an example:
cat file1 && cat file2
file2 will be cat-ed only if file1 can be cat-ed.
In Bash, logical
trueis represented as0while logicalfalseis represented as a non-zero value. This allows the exit value of a command to be used in a logical operation.You can find out more by browsing the documentation on bash operators.
One common idiom is to chain commands using
&&so that if any command in the chain fails, the following commands are not executed: