簡単に見てみましょう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