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