1

以下の例の構造 ((..)) の名前と構文は何ですか?

for ((i=1;i<10;i++)) do echo $i; done

それは奇妙な変数 i を持ってい
ますシェルの数値循環のための他の構造はどこにありますか?

4

3 に答える 3

5

リストした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
于 2010-04-18T04:05:56.233 に答える
2

「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 です。

于 2010-04-18T04:29:19.200 に答える
1

bash(1)man ページ、SHELL GRAMMARセクション、Compound Commandsサブセクション。数値ループの他の選択肢はwhileuntil手動インクリメントを使用することです。

于 2010-04-18T04:04:15.720 に答える