コマンドラインでforループを作成する方法は?

コマンドラインでforループを作成する方法は?

簡単に見てみましょうfor loop

#!/bin/bash

for i in `seq 1 10`;
do
    echo $i
done

Bashスクリプトのセミコロンは、シェルが現在のコマンドを同期的に実行した後に次のコマンドに移動するようにします。 Enterキーを押すと、バッファをすぐにフラッシュするために次のコマンドを入力できないことを除いて、基本的に同じことが行われます。

それでは、シェルが次の行を解釈できないのはなぜですか?

for i in `seq 1 10`; do; echo $i; done

これはfor loop実際にどのように機能しますか?

ベストアンサー1

forマニュアルページの繰り返し構文はbash次のとおりです。

for name [ [ in [ word ... ] ] ; ] do list ; done

セミコロンは、マニュアルページの他の部分で説明されているように、キャリッジリターンで置き換えることができますbash。 「コマンドを区別するために、セミコロンの代わりに1つ以上の一連の改行がリストに表示されることがあります。」

しかし、その逆は真実ではありません。改行文字を任意にセミコロンに置き換えることはできません。上記の構文規則に従い、後に追加のセミコロンを挿入しない限り、複数行スクリプトを単一行に変換できますdo

for i in `seq 1 10`; do echo $i; done

おすすめ記事