How-to: Conditional Execution

Chain commands to run one after another

An AND list has the form 

      command1 && command2
command2 is executed if, and only if, command1 succeeds

An OR list has the form 

      command3 || command4

command4 is executed if, and only if, command3 fails  

In any event the second command must wait for the first command to either complete successfully or to fail.

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).

When job control is not active, 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 return status of AND and OR lists is the exit status of the last command executed in the list.

Related Linux commands

Bash Syntax
Windows equivalent: Switch - IF THEN ELSE Execution.

Copyright © 1999-2024
Some rights reserved