Bashマニュアルから(制御プロンプト)1):
\j the number of jobs currently managed by the shell.
\$ If the effective uid is 0, #, otherwise $.
欲しいものPS1
に設定されています
[some-string] $
仕事がないとき。
[some-string]2 $
職業が2つのとき。
どうすればいいですか?
可能であれば、ソリューションはBash拡張とBashの組み込みと同じくらい簡単です。
答え1
screen
Bashはプロンプト(例:IIRC)で条件をサポートしていないと思いますが、コマンド置換を使用して\j
いくつかのロジックを追加できます。
anyjobs() { [[ "$1" != 0 ]] && echo "[ $1 bg job(s) ] "; }
PS1='$? $(anyjobs \j)\u@\h \w\$ '
これは Bash に関連するサブシェルを実行しますfork()
が、この問題を解決する方法はありません。
通常、 で変数を設定することでサブシェルを避けることができますが、そこPROMPT_COMMAND
からジョブ数を取得する簡単な方法はありません。