Looping Constructs (Bash Reference Manual)

The syntax of the for command is:

for name [ [in [words โ€ฆ] ] ; ] do commands; done

Expand words (see Shell Expansions), and execute commands once for each member in the resultant list, with name bound to the current member. If โ€˜in wordsโ€™ is not present, the for command executes the commands once for each positional parameter that is set, as if โ€˜in "$@"โ€™ had been specified (see Special Parameters).

The return status is the exit status of the last command that executes. If there are no items in the expansion of words, no commands are executed, and the return status is zero.

An alternate form of the for command is also supported:

for (( expr1 ; expr2 ; expr3 )) ; do commands ; done

First, the arithmetic expression expr1 is evaluated according to the rules described below (see Shell Arithmetic). The arithmetic expression expr2 is then evaluated repeatedly until it evaluates to zero. Each time expr2 evaluates to a non-zero value, commands are executed and the arithmetic expression expr3 is evaluated. If any expression is omitted, it behaves as if it evaluates to 1. The return value is the exit status of the last command in commands that is executed, or false if any of the expressions is invalid.

Last updated