for
Expand words, and execute commands once for each member in the resultant list, with name bound to the current member.
SYNTAX for name [in words ...]; do commands; doneIf `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 Positional Parameters below.) for
command is
also supported:
for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
First, the arithmetic expression expr1 is evaluated
according to shell arithmetic expression rules. 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 list that
is executed, or false if any of the expressions is invalid.
Positional Parameters
These are assigned from the shell's arguments when the shell is invoked, they can be reassigned using the set builtin command.
Positional parameter N may be referenced as ${N}, or as $N when N consists of a single digit. $1, $2 etc
Example
#! /bin/bash
# List of manufacturers
for m in Apple Sony Panasonic "Hewlett Packard" Nokia
do
echo "Manufacturer is:" $m
done # The above could also be written as a single line... for m in Apple Sony Panasonic "Hewlett Packard" Nokia; do echo "Manufacturer is:" $m;done
"In expanding the field of knowledge, we but increase the horizon of ignorance" - Henry Miller
Related Linux Bash commands:
case - Conditionally perform a command
eval - Evaluate several commands/arguments
if - Conditionally perform a command
gawk - Find and Replace text within file(s)
m4 - Macro processor
until - Execute commands (until error)
while - Execute commands
Equivalent Windows XP commands:
FOR - Conditionally perform a command several times
IF - Conditionally perform a command