回答:
これには特別な構文があります:
for i do
printf '%s\n' "$i"
done
より一般的には、現在のスクリプトまたは関数のパラメーターのリストは、特殊変数を介して利用できます$@
。
for i in "$@"; do
printf '%s\n' "$i"
done
の周り$@
に二重引用符が必要であることに注意してください。そうでない場合、パラメータはワイルドカード展開とフィールド分割を経ます。"$@"
魔法です:二重引用符にもかかわらず、パラメータと同じ数のフィールドに展開されます。
print_arguments () {
for i in "$@"; do printf '%s\n' "$i"; done
}
print_arguments 'hello world' '*' 'special !\characters' '-n' # prints 4 lines
print_arguments '' # prints one empty line
print_arguments # prints nothing
for f; do ...