GNU Info

Info Node: (bashref.info)Looping Constructs

(bashref.info)Looping Constructs


Next: Conditional Constructs Prev: Lists Up: Shell Commands
Enter node , (file) or (file)node

Looping Constructs
------------------

   Bash supports the following looping constructs.

   Note that wherever a `;' appears in the description of a command's
syntax, it may be replaced with one or more newlines.

`until'
     The syntax of the `until' command is:
          until TEST-COMMANDS; do CONSEQUENT-COMMANDS; done
     Execute CONSEQUENT-COMMANDS as long as TEST-COMMANDS has an exit
     status which is not zero.  The return status is the exit status of
     the last command executed in CONSEQUENT-COMMANDS, or zero if none
     was executed.

`while'
     The syntax of the `while' command is:
          while TEST-COMMANDS; do CONSEQUENT-COMMANDS; done

     Execute CONSEQUENT-COMMANDS as long as TEST-COMMANDS has an exit
     status of zero.  The return status is the exit status of the last
     command executed in CONSEQUENT-COMMANDS, or zero if none was
     executed.

`for'
     The syntax of the `for' command is:

          for NAME [in WORDS ...]; do COMMANDS; done
     Expand WORDS, 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 (Note: 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 (Note: 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 LIST that is executed, or false if any of the
     expressions is invalid.

   The `break' and `continue' builtins (Note: Bourne Shell Builtins)
may be used to control loop execution.


automatically generated by info2www version 1.2.2.9