なぜ「for anytext;」が4回繰り返されるのですか?

なぜ「for anytext;」が4回繰り返されるのですか?

これはバグか機能ですか?
これが起こると思います。引用しない文字と数字。

GNU bash バージョン 4.1.5 の実行

for alpha01234; do echo $((++i)); done

出力:

1
2
3
4

答え1

forこれは、以下に説明する複合コマンドの機能ですhelp for

for: for NAME [in WORDS ... ] ; do COMMANDS; done

リストの各メンバーに対してコマンドを実行します。

このforループは、プロジェクトリストの各メンバーに対して一連のコマンドを実行します。in WORDS ...;存在しない場合はin "$@"想定されます。の各要素に対してその要素を設定しWORDSNAME後にCOMMANDS実行します。

したがって、引用符付きコードは、4つのパラメータで呼び出されるスクリプトで実行できます。

答え2

for x; do …例ショートカットfor x in "$@"; do …:位置パラメータを繰り返します。 4回繰り返すと、4つの位置引数($1to $4)があるという意味です。

関連情報