Risposte:
Questa è una caratteristica del for
comando composto, come descritto da help for
:
for: for NAME [in WORDS ... ] ; do COMMANDS; done
Eseguire comandi per ciascun membro in un elenco.
Il
for
ciclo esegue una sequenza di comandi per ciascun membro in un elenco di elementi. Sein WORDS ...;
non è presente,in "$@"
si assume. Per ogni elemento inWORDS
,NAME
viene impostato su quell'elemento eCOMMANDS
vengono eseguiti.
Quindi il codice che hai citato viene probabilmente eseguito in uno script che è stato chiamato con 4 parametri.
for x; do …
è una scorciatoia per for x in "$@"; do …
: scorre i parametri posizionali. Se esegue quattro cicli, significa che hai quattro parametri posizionali ( $1
attraverso $4
).
set a b c d
da qualche tempo di recente. Lo uso spessoset
in uno script per i test. Dopo aver riavviato il terminale, si è fermato ... (ha senso ora) ..