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