An AND list has the form
command1 && command2
command2 is executed if, and only if, command1 succeeds
An OR list has the form
command1 || command2
command2 is executed if, and only if, command1 fails
A list
is a sequence of one or more pipelines separated by one of the operators ';', '&', '&&',
or '||', and optionally terminated by one of ';',
'&', or a newline
.
Of these list operators, '&&' and '||' have equal precedence, followed by ';' and '&', which have equal precedence.
If a command is terminated by the control operator '&', the shell executes the command asynchronously in a subshell. This is known as executing the command in the background. The shell does not wait for the command to finish, and the return status is 0 (true).