Unixスクリプトの実行モードについて質問があります。
たとえば、次の行を含むスクリプトは次のとおりです。
command B
function C()
{
Myscript // Myscript is a script
command D
}
command E
Myscript
実行に時間がかかる場合(例:5分)、次のコマンド(command D
)が実行Myscript
または完了するのを待ちます。
ベストアンサー1
特定のスクリプトの場合、どちらも実行されませMyscript
んcommand D
。関数を定義しましたが、C
呼び出しませんでした。
実行順序は次のとおりです。
command B
完了するまで実行します。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
バックグラウンドで実行します。その後、スクリプトは待ってから完了するA
とB
終了します。