LinuxでのBashWaitコマンド

Bash Wait Command Linux



waitは、実行中のプロセスが完了するのを待った後に終了ステータスを返すLinuxコマンドです。複数のプロセスが同時に実行されている場合、waitコマンドは最後のプロセスのみを追跡できます。 waitコマンドがジョブまたはプロセスIDに関連付けられていない場合、終了ステータスを返す前に、すべての子プロセスが完了するのを待ちます。 bash waitコマンドは、多くの場合、プロセスIDまたはジョブIDコマンドとともに使用されます。

このチュートリアルでは、LinuxでのBash待機コマンドについて説明します。







構文:

LinuxでのWaitコマンドの一般的な構文は次のとおりです。



待つ[オプション] ID

IDは、プロセスIDまたはジョブIDになります。



LinuxでのBash待機コマンドの説明:

まず、touchコマンドを使用してファイルを作成します。





$接するBashWait.sh

以下のコマンドを使用して、このファイルを実行可能にします。



$chmod+ xファイル名

実行可能特権がファイルに付与されたら、ファイルを開き、bashファイルにスクリプトを記述します。

#!/ bin / bash

寝る 3

processID=$!

捨てた 'PID:$ processID'

待つ $ processID

捨てた 「終了ステータス:$?」

$!最新のプロセスのPIDを格納するBASHの変数です。

次に、次のようにスクリプトを実行します。

$。/ファイル名

$。/BashWait.sh

プロセスIDと存在ステータスがシェルに表示されます。

–nオプションの使用:

–nオプションを使用すると、waitコマンドは、指定されたプロセスIDまたはジョブ仕様からの単一のジョブが終了するのを待ってから、終了ステータスを返します。 Wait -nは、バックグラウンドジョブが終了するのを待ち、引数が指定されていない場合はジョブの終了ステータスを返します。

スクリプトに以下の行を記述します。

#!/ bin / bash

寝る 30

寝る 8

寝る 7

待つ -NS

捨てた 「最初の仕事は完了しました。」

待つ

捨てた 「すべてのジョブが完了しました。」

次に、スクリプトを再度実行すると、最初のジョブが完了すると、端末にメッセージが出力され、他のすべてのジョブが完了するのを待ちます。

–fオプションの使用:

-fオプションは、終了コードを返す前に、各プロセスIDまたはジョブが停止するのを待ちます。デフォルトでは、ジョブ制御はレスポンシブプロンプトでのみ使用できます。

ターミナルを開き、コマンドを実行します。

プロセス3944を待ちます。

別のターミナルウィンドウを開き、killコマンドを実行してプロセスを終了します。

ステータスが変更されます。 Waitコマンドが完了し、プロセスの終了コードが返されます。

–fコマンドを使用して、上記の手順を繰り返します。

待機コマンドを使用したスクリプト:

デモンストレーションには「hello.sh」および「bash.sh」スクリプトを使用しています。 「hello.sh」スクリプトは1から5までの数字を出力し、「bash.sh」スクリプトはhello.shを呼び出してバックグラウンドで実行し、hello.shのPIDを取得して終了を待ちます。

helloとbashという名前の2つのスクリプトを作成します。

hello.shファイルに以下の行を追加します。

#!/ bin / bash

にとって 1 2 3 4 5 6 7 8 9 10

NS

捨てたhello.sh –ループ番号$ i

終わり

以下の行をbashスクリプトに追加します。

#!/ bin / bash

捨てたbash.shを開始しました

捨てたhello.shを開始しました

/hello.sh

process_id=$!

待つ $ process_id

捨てたhello.shを完了しました

出力:

結論:

ユーザーがプロセスを停止したい場合、システムはプロセスによって保持されているすべてのリソースを解放し、別のリソースが開始するのを待ちます。他のプロセスが完了したら、実行を再開できることをプロセスに通知する必要があります。 bashのwaitコマンドは、実行が完了するまで待機し、プロセスの実行が完了すると終了ステータスを返します。このマニュアルでは、LinuxでのBashwaitコマンドの例をいくつか見てきました。