Forループカッコ - Cに似た構文

Forループカッコ - Cに似た構文

次の構文を使用して繰り返すときに2つの角かっこが必要なのはなぜですか?

for (( expr1; expr2; expr3 ))
do
 command1
 command2
 ..
done

以下のコードは機能しませんか?そして「というエラーが発生します。予期しない表示'('の近くに構文エラーがあります.

for ( expr1; expr2; expr3 )
do
 command1
 command2
 ..
done

答え1

その理由は(異なる意味を持ちます。bashマンページから:

        (リスト)リストはサブシェル環境で実行されます。
               (下記のコマンド実行環境を参照してください)置き換える
               シェルに影響を与える割り当ておよび組み込みコマンド
               コマンドが実行された後、環境は無効になります。  
               終わる。戻り状態はリストの終了状態です。

        ((表現する))
               式は規則に従って評価されます。
               算術評価については後述する。もし  
               式の値がゼロでない場合
               状態は 0 で、そうでなければ戻り状態は 1 です。これは
               let "expression" とまったく同じです。

関連情報