for
циклічні петлі на позиційних параметрах, якщо жодна in value1 value2...
частина не вказана у всіх оболонках Борна.
Це вже було в оболонці Bourne з кінця 70-х, хоча в оболонці Bourne це потрібно буде опустити ;
(ви також можете використовувати for i do
(за винятком деяких старих версій попелу, де вам потрібен новий рядок до початку do
)).
Дивіться, яка мета ключового слова "робити" в Bash для циклів? для отримання додаткової інформації, включаючи більше дивних варіантів.
Виконуємо:
for i
do
something with "$i"
done
є гарною практикою. Це трохи більш портативний / надійний, ніж зазвичай еквівалент:
for i in "$@"; do
something with "$i"
done
для яких оболонка Bourne, ksh88 має деякі проблеми за певних умов (наприклад, коли $#
в деяких версіях оболонки Bourne дорівнює 0 (або ${1+"$@"}
замість того, що "$@"
може $IFS
обійтися) або коли не містить символу пробілу в Bourne та ksh88), або коли nounset
опція включена , і $#
0 в деяких версіях деяких оболонок , включаючи bash
( знову ${1+"$@"}
як обхідний ).