Antworten:
Dies ist eine Funktion des forzusammengesetzten Befehls, wie beschrieben durch help for:
for: for NAME [in WORDS ... ] ; do COMMANDS; doneFühren Sie Befehle für jedes Mitglied in einer Liste aus.
Die
forSchleife führt eine Folge von Befehlen für jedes Mitglied in einer Liste von Elementen aus. Wennin WORDS ...;nicht vorhanden,in "$@"wird angenommen. Für jedes Element inWORDS,NAMEwird auf dieses Element gesetzt, und derCOMMANDSausgeführt werden.
Der von Ihnen angegebene Code wird also wahrscheinlich in einem Skript ausgeführt, das mit 4 Parametern aufgerufen wurde.
for x; do …ist eine Abkürzung für for x in "$@"; do …: Sie iteriert über die Positionsparameter. Wenn es viermal wiederholt wird, bedeutet dies, dass Sie vier Positionsparameter ( $1durch $4) haben.
set a b c dirgendwann irgendwann benutzt haben. Ich benutzesetdiese Art oft in einem Skript zum Testen. Nach dem Neustart des Terminals hat es aufgehört ... (macht jetzt Sinn).