我正在自定义我的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
在每个命令后重新评估?
% (...)
和%j
都可以在man zshmisc
中的“提示序列扩展”部分找到(三元操作符在“提示中的条件子字符串”子部分中)。 - dvk