Esse é um recurso do comando for compound, conforme descrito por help for :
for: for NAME [in WORDS ... ] ; do COMMANDS; doneExecute commands for each member in a list.
The
forloop 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,NAMEis set to that element, and theCOMMANDSare executed.
Então o código que você citou é provavelmente executado em um script que foi chamado com 4 parâmetros.