Відповіді:
Це особливість 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
цей спосіб у сценарії для тестування .. Після перезавантаження терміналу він зупинився ... (має сенс зараз) ..