POSIXのShell Commnad Languageの中のThe for Loopの所に書いてあります。
The for Loop
The for loop shall execute a sequence of commands for each member in a list of items. The for loop requires that the reserved words do and done be used to delimit the sequence of commands.
The format for the for loop is as follows:
for name [ in [word ... ]]
First, the list of words following in shall be expanded to generate a list of items. Then, the variable name shall be set to each item, in turn, and the compound-list executed each time. If no items result from the expansion, the compound-list shall not be executed. Omitting:
shall be equivalent to:
for name [ [ in [ word ... ] ] ; ] do list ; done
The list of words following in is expanded, generating a list of items. The variable name is set to
each element of this list in turn, and list is executed each time. If the in word is omitted, the for
command executes list once for each positional parameter that is set (see PARAMETERS below). The
return status is the exit status of the last command that executes. If the expansion of the items fol‐
lowing in results in an empty list, no commands are executed, and the return status is 0.