Esse é um recurso do comando for
compound, conforme descrito por help for
:
for: for NAME [in WORDS ... ] ; do COMMANDS; done
Execute commands for each member in a list.
The
for
loop executes a sequence of commands for each member in a list of items. Ifin WORDS ...;
is not present, thenin "$@"
is assumed. For each element inWORDS
,NAME
is set to that element, and theCOMMANDS
are executed.
Então o código que você citou é provavelmente executado em um script que foi chamado com 4 parâmetros.