bash:新しいプロセスPIDメッセージを無効にする

bash:新しいプロセスPIDメッセージを無効にする

次のように見えます[2] 2847。最初の数字はシェルで生成されたプロセスの列挙にすぎないと思います。 2番目はPIDです。とにかく私はこれらのメッセージについて全く気にしなかったので、それを見るのは面倒です。オフにする方法はありますか? (プロセス終了メッセージがset +bm無効になっていることがわかりました.bashrc。)

ベストアンサー1

最初の数字は位置インデックスです。ジョブ関連コマンド(jobsなどfg)が使用されます。たとえば、出力を受信すると、ジョブをフォアグラウンドで[2] 2847実行できます。fg 2

ソースコードを参照してメッセージを無効にする方法はありません。実行するチェックの1つは、シェルが対話型であることを確認することです。したがって、非対話型シェルでコマンドを実行すると、対応する出力を取得できません。たとえば、サブシェルで実行できます。

$ (your_command &)

これはまったく異なるシェルでコマンドを実行するのと同じであるため、他の望ましくない副作用がある可能性があります。

変更したい場合は、bash特定の出力を削除できます。 Bash 4.2ではjobs.cオンラインです1428

fprintf (stderr, "[%d] %ld\n", job + 1, (long)pid);

それ以外の場合は呼び出されます。この特別な場合にのみ消えたい場合は、次のexecute_cmd.c行をコメントアウトできます762

DESCRIBE_PID (last_made_pid);

おすすめ記事