以下の例の構造 ((..)) の名前と構文は何ですか?
for ((i=1;i<10;i++)) do echo $i; done
それは奇妙な変数 i を持ってい
ますシェルの数値循環のための他の構造はどこにありますか?
以下の例の構造 ((..)) の名前と構文は何ですか?
for ((i=1;i<10;i++)) do echo $i; done
それは奇妙な変数 i を持ってい
ますシェルの数値循環のための他の構造はどこにありますか?
リストしたCスタイルのループ以外のループ構造の例については、 Advanced Bash Scripting Guideのループに関するセクションを確認してください。
また試してください:
$ for i in {1..5}; do echo $i; done # range argument
1
2
3
4
5
$ for i in `seq 1 5`; do echo $i; done # iterate over seq command
1
2
3
4
5
「Bash リファレンス マニュアル」(4.0) のセクション 3.2.4.2 では、「((...))
」表記は算術式として分類されます。$((...))
これは、§3.5.5 で算術展開として説明されている ' ' 表記と密接に関連しています。そして§3.2.4.1「ループ構造」には次のように書かれています:
コマンドの代替形式
for
もサポートされています。
for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
最初に、算術式 expr1 が以下で説明する規則に従って評価されます (Section 6.5 [Shell Arithmetic], page 78 を参照)。算術式 expr2 は、評価結果がゼロになるまで繰り返し評価されます。expr2 がゼロ以外の値に評価されるたびに、コマンドが実行され、算術式 expr3 が評価されます。いずれかの式が省略されている場合、それは 1 に評価されるかのように動作します。戻り値は、実行されたリスト内の最後のコマンドの終了ステータス、またはいずれかの式が無効な場合は false です。
bash(1)
man ページ、SHELL GRAMMARセクション、Compound Commandsサブセクション。数値ループの他の選択肢はwhile
、until
手動インクリメントを使用することです。