バックグラウンドジョブがあるかどうかを示すようにプロンプ​​トをカスタマイズできますか?

バックグラウンドジョブがあるかどうかを示すようにプロンプ​​トをカスタマイズできますか?

バックグラウンドジョブがあるかどうかを示すようにbashプロンプトをカスタマイズできますか?背景作業があるという事実を簡単に忘れてしまいます。

プロンプトが次のようになるとしましょう。

$

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

2 $

答え1

\jヒントを入力してください。 ~からバッシュマニュアル:

\j 現在のシェルによって管理されているタスクの数


プロンプトは期限切れになり、操作はいつでも完了する可能性があるため、端末をアイドル状態にしておくと、プロンプトを再表示する必要があることに注意してください。


\jジョブがある場合にのみプロンプトを表示できますが、プロンプトを印刷するには追加のプロセスが必要です。

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

答え2

zsh では、以下を使用して%jジョブ数を表示できます。"%1(j.%j.)"例えば。RPROMPT="%1(j.%j.)"右側のプロンプトに表示します。詳しくはマニュアルをご覧ください。そしてこの回答

関連情報