web-dev-qa-db-ja.com

プロンプトをカスタマイズして、バックグラウンドジョブがあるかどうかを表示することはできますか?

バックグラウンドジョブがあるかどうかを表示するようにbashプロンプトをカスタマイズすることは可能ですか?バックグラウンドの仕事があることを忘れがちです。

プロンプトが...だった場合は言う.

$

バックグラウンドジョブの数を表示する方法はありますか?たとえば、CTRL+Zを使用してバックグラウンドに送信された2つのバックグラウンドジョブがある場合、プロンプトは...

2 $
5
paradroid

プロンプトに\jを入力します。 bashマニュアル から:

\jシェルによって現在管理されているジョブの数


プロンプトは古くなり、ジョブはいつでも終了する可能性があることを覚えておいてください。したがって、ターミナルをアイドル状態のままにした場合は、プロンプトを再表示する必要があります。


プロンプトを印刷するためだけに追加のプロセスが必要になる代わりに、ジョブが存在する場合にのみ\jを表示させることができます。

Prompt_COMMAND='hasjobs=$(jobs -p)'
PS1='${hasjobs:+\j }\$ '
19
jw013