バックグラウンドでプロセスを実行すると、コマンドプロンプトにプロセスIDが表示されます。たとえば、
$ gvim 1 &
[3] 9584
別のプロセスを実行すると、以前のプロセスのステータスも表示されます。たとえば、
$ gvim 2 &
[4] 9500
[3] Done gvimBackground 1
現在のPIDと以前のプロセスに関連するデータの表示を抑制する方法はありますか?
答え1
フルオーダーを入れてください。含む&
,括弧内:
(早く)$
gvim 1 &
[3] 9584
(早く)$その他のコマンド
[3] Done gvimBackground 1
(早く)$(gvim 1 &
)
<——(沈黙)
(早く)$
答え2
新しいジョブを開始したときに他のジョブのステータスを報告するのではなく、デフォルトはプロンプトが表示される前にステータス変更のみを報告することです。したがって、あなたの場合は、最初の機会、つまり2番目の作業を開始した後に表示されるプロンプトに報告されます。
次のコマンドを実行して、ジョブレポートを同期できます。
set -b
この場合、バックグラウンドジョブの完了またはサスペンドの報告は発生直後に完了し、次のプロンプトを待つ必要はありません。
@Scottが言ったように、タスクの完了通知を受け取らないようにするには、subshellでタスクとして開始するか、(job &)
コマンドをdisown
使用するか(またはzshを使用して次に開始する)ことができます。もう一度前景にインポートするか、ジョブ番号を使用して終了します。disown
job &!