Ответы:
Это особенность 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
этот способ в скрипте для тестирования .. После перезапуска терминала он остановился ... (имеет смысл сейчас) ..