我自定义我的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?
解决方法
zsh有一个特殊的提示序列,如C三元运算符.下面的工程意味着如果有一个或多个工作,然后打印他们的号码或打印什么:
%(1j.%j.)