Bashで「jobs」コマンドの「x」オプションを使用する例

Bashで「jobs」コマンドの「x」オプションを使用する例

jobs -x説明を見るとこうなっています。

-xオプションが指定されている場合、ジョブはコマンドまたは引数で見つかったすべてのジョブ仕様を対応するプロセスグループIDに置き換え、コマンドを実行し、引数を渡し、終了ステータスを返します。

例がなければ、この説明は非常に不適切です。可能であればx、"いつこれらのオプションが必要ですか?

答え1

例:

$ sleep 300 &
[1] 16012
$ echo %1
%1
$ jobs -x echo %1
16012

これが%1標準です。この番号は、ジョブが[1]作成された直後に表示されます。なしはjobs -x %1単なる文字列なので、echo %1その文字列を印刷してください。jobs -x実行する前に、jobspecを適切なプロセスグループIDに置き換えてくださいecho

プロセスグループに対して何かをしたい場合、jobs -x1つの方法は正しいIDを置き換えることです。

私のテストでは、ジョブが存在しない場合は%1リテラル状態が維持され、コマンドは関係なく実行されます。jobs -xこの場合、それ自体が失敗する可能性がある方法が見つからなかったので、コマンド(またはスクリプト全体)が何らかの方法でそれを処理できるように準備する必要があると思います(たとえば、損傷を与えることなく失敗する)。

関連情報