Bash Reference Manual. Node: Lists

PREVPipelines UPShell Commands NEXTLooping Constructs

3.2.3: Lists of Commands

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). The standard input for asynchronous commands, in the absence of any explicit redirections, is redirected from /dev/null.

Commands separated by a `;' are executed sequentially; the shell waits for each command to terminate in turn. The return status is the exit status of the last command executed.

The control operators `&&' and `||' denote AND lists and OR lists, respectively. An AND list has the form

command && command2

command2 is executed if, and only if, command returns an exit status of zero.

An OR list has the form

command || command2

command2 is executed if, and only if, command returns a non-zero exit status.

The return status of AND and OR lists is the exit status of the last command executed in the list.

PREVPipelines UPShell Commands NEXTLooping Constructs