一連のコマンドは、スクリプトファイルに書き込んで実行することで実行できます。
スクリプトファイルは、通常は.SHファイル拡張子を持つテキストファイルで、コマンドライン(シェル)から実行できる一連の命令が含まれています。
whileループの例
以下は、whileループの例です。実行されると、このスクリプトファイルは1〜9の数字を画面に表示します。 while文は、forループよりも終了条件を指定する柔軟性があります。
たとえば、インクリメントステートメント "((count ++))"を省略すると、前のスクリプトを無限ループにすることができます。
「スリープ1」ステートメントは、各繰り返しで1秒間実行を一時停止します。 Ctrl + Cキーボードショートカットを使用してプロセスを終了します。
コロンを条件として無限ループを作成することもできます:
whileループで複数の条件を使用するには、二重角カッコ表記を使用する必要があります。
このスクリプトでは、変数 "done"は0に初期化され、カウントが5に達すると1に設定されます。ループ条件では、 "count"が9未満で "done"が等しいゼロにする。したがって、カウントが5になるとループが終了します。
"&&"は論理的な "and"と "||"論理「または」を意味する。
条件中の接尾辞 "and"と "or"の代わりの表記法は、 "-a"と "-o"で、大括弧で囲まれています。上記の条件:
…は次のように書き直すことができます:
テキストファイルの読み込みは通常、whileループで行われます。次の例では、bashスクリプトは、 "inventory.txt:"というファイルの行ごとに内容を読み取ります
最初の行は、入力ファイル名を "FILE"変数に割り当てます。 2行目は、ファイル記述子 "6"に "標準入力"を保存します(3から9までの任意の値)。これは、スクリプトの最後に "標準入力"をファイル記述子 "0"に復元できるようにするためです(ステートメント "exec 0 3行目で入力ファイルがファイル記述子" 0 "に割り当てられています"read"ステートメントは各反復でファイルから行を読み取り、それを "line1"変数に代入します。
早期にwhileループを終了するには、次のようにbreak文を使用します。
breakステートメントはループ実行中にプログラムの実行をスキップし、それに続くステートメントを実行します。この場合、ステートメント "echo finished"と表示されます。
一方、continueステートメントは、現在の反復のwhileループステートメントの残りの部分だけをスキップし、次の反復に直接ジャンプします。
この場合、変数 "count"が5に達すると "continue"文が実行されます。これは、次の文(echo "$ count")がこの繰り返しで実行されないことを意味します( "count"の値が5の場合)。




