Furthermore, you also have
|| which is the logical or, and also
; which is just a separator which doesn’t care what happend to the command before.
$ false || echo "Oops, fail" Oops, fail $ true || echo "Will not be printed" $ $ true && echo "Things went well" Things went well $ false && echo "Will not be printed" $ $ false ; echo "This will always run" This will always run
Some details about this can be found here Lists of Commands in the Bash Manual.