Відповіді:
Це особливість forскладеної команди, як описано help for:
for: for NAME [in WORDS ... ] ; do COMMANDS; doneВиконайте команди для кожного учасника у списку.
forЦикл виконує послідовність команд для кожного елемента в списку елементів. Якщоin WORDS ...;немає, тоin "$@"передбачається. Для кожного елемента вWORDS,NAMEвстановлений цей елемент, іCOMMANDSвиконується.
Тож кодируваний вами код, ймовірно, виконується в сценарії, який викликався з 4 параметрами.
for x; do …є ярликом для for x in "$@"; do …: воно перебирає позиційні параметри. Якщо воно циклічно чотири рази, це означає, що у вас є чотири позиційні параметри ( $1наскрізь $4).
set a b c dнещодавно використовував. Я часто використовуюsetцей спосіб у сценарії для тестування .. Після перезавантаження терміналу він зупинився ... (має сенс зараз) ..