Unixでは、スクリプト/プログラムはどのように実行されますか?

Unixでは、スクリプト/プログラムはどのように実行されますか?

Unixスクリプトの実行モードについて質問があります。

たとえば、次の行を含むスクリプトは次のとおりです。

command B
function C()
{
Myscript   // Myscript is a script 
command  D
}
command E

Myscript実行に時間がかかる場合(例:5分)、次のコマンド(command D)が実行Myscriptまたは完了するのを待ちます。

ベストアンサー1

特定のスクリプトの場合、どちらも実行されませMyscriptcommand D。関数を定義しましたが、C呼び出しませんでした。

実行順序は次のとおりです。

  1. command B完了するまで実行します。
  2. command E完了するまで実行します。

呼び出すと、完了するまでC実行されMyscript、次にcommand D完了するまで実行されます。

シェルスクリプトから呼び出されるすべては表示された順序で実行され、完了するまで実行されます。他のジョブと並列に何かを実行する必要がある場合は、ジョブ制御を使用する必要があります(&&文字を使用してジョブをバックグラウンドに配置する方法を参照)。簡単な例:

A
B

完了するまで実行し、A完了Bするまで実行します。スクリプトが完了しました。

A &
B

バックグラウンドで実行し、AフォアグラウンドでBを実行します。シェルスクリプトはB完了すると終了します。Aまだ実行している可能性があります。

A &
B &

Aバックグラウンドで実行してから(A完了を待たずに)Bバックグラウンドで実行します。演劇はすぐに終了します。

A &
B &
wait

Aバックグラウンドで実行してから(A完了を待たずに)Bバックグラウンドで実行します。その後、スクリプトは待ってから完了するAB終了します。

おすすめ記事