Bash - 前のコマンドが完了した後にコマンドを実行するには? [コピー]

Bash - 前のコマンドが完了した後にコマンドを実行するには? [コピー]

script.sh現在、次の内容のファイルがあります。

#!/bin/bash
wget -q http://exemple.com/page1.php;
wget -q http://exemple.com/page2.php;
wget -q http://exemple.com/page3.php;

前のコマンドが完了したら、コマンドを順番に実行したいと思います。私がしっかりしているのか?私は以前Linuxを使ったことがないので検索してみましたが、解決策が見つかりませんでした。

答え1

はい、あなたのアプローチは正しいです。シェルスクリプトは各コマンドを順番に実行し、次のコマンドを開始する前に最初のコマンドが完了するのを待ちます。コマンドを次のように関連付ける;か、別の行に入力できます。

command1; command2

または

command1
command2

;コマンドが別々の行にある場合は必要ありません。最初のコマンドが正常に終了した場合にのみ2番目のコマンドを実行することを選択することもできます。これを行うには、次のように参加してください&&

command1 && command2

または

command1 &&
command2

利用可能なさまざまな制御演算子の詳細については、次を参照してください。ここ

答え2

このように繰り返される場合は、次を使用することをお勧めします。forループ

for P in {1..3} ; do wget -q http://exemple.com/page${P}.php ; done

これはコマンドラインに適した1行バージョンですが、スクリプトでも使用できます。スペースなしで文字列に変数を挿入するには、変数名の周りに中かっこを使用する必要があります。

このループは要求を順番に送信するだけでなく、必要に応じてタイプミスを気にせずに調整して再利用するのが簡単です。

関連情報