15

zshプロンプトをカスタマイズしていますが、バックグラウンドジョブがあるかどうかを確認するために次のことを見つけました:

if [[ $(jobs | wc -l) -gt 0 ]]; then # has background job(s)
    number_jobs='J:${cyan}%j${no_color}'
else # no background job(s)
    number_jobs=""
fi

私が直面している問題は、各コマンドの後ではなく、新しいセッションを開いたときにのみコードが評価されているように見えることです。number_jobs各コマンドの後に再評価するにはどうすればよいですか?

4

1 に答える 1

31

zsh には、C 三項演算子のような特別なプロンプト シーケンスがあります。以下の構造は、1 つ以上のジョブがある場合、それらの番号を出力するか、何も出力しないことを意味します。

 %(1j.%j.)
于 2012-04-17T15:28:04.730 に答える