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 三元运算符。下面的结构意味着如果有一个或多个作业,则打印它们的编号或不打印:

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