2

次のコマンドを入力するとします。

/usr/local/bin/wget -O "/storehere.xml" "download1" && ./parse_xml;/usr/local/bin/wget -O "/storehere.xml" "download2" && ./parse_xml;

私の理解では、シェルは download1 が取得されて保存された後に parse_xml を実行します。ただし、ダウンロード 2 の次の wget コマンドがいつ実行されるかは不明です。parse_xml の実行が完了した後 (もちろん初めて)? または、parse_xml の実行要求が行われた後ですか? 答えが後者の場合、次の wget を実行する前にスクリプトが parse_xml からの戻りコードを待機するようにする方法を知りたいです。

ありがとう。

4

1 に答える 1

2

あなたの場合、次のコマンドが呼び出される前に、各コマンドが呼び出され、正常に(または失敗して)完了します。

説明:

  • 1&&行で異なるコマンドを区切る表記は、「&&の前のコマンドが正常に実行された場合(戻りコード$?はゼロ)、&&の後にコマンドを実行する」ことを意味します。
  • 1;行で異なるコマンドを区切る表記は、最初のコマンドが成功したかどうかに関係なく、「';'の前にコマンドを実行し、その後にコマンドを実行する」ことを意味します。

これをテストするには、プロンプトで次の2つの異なるコマンドを試すことができます。

# wget will fail in both cases:

# case 1, with &&
$ wget hello && ls

# case 2, with ;
$ wget hello; ls
于 2012-11-01T19:17:57.120 に答える