zsh 提示 - 检查是否有任何后台作业

标签 zsh background-process prompt

我正在自定义我的 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

我面临的问题是,代码似乎只有在我打开一个新 session 时才被评估,而不是在每个命令之后才进行评估,这使得这变得毫无用处。我怎么会有 number_jobs在每个命令后重新评估?

最佳答案

zsh 有一个特殊的提示序列,就像 C 三元运算符。下面的结构意味着如果有一个或多个作业,则打印它们的编号或不打印任何内容:

 %(1j.%j.)

关于zsh 提示 - 检查是否有任何后台作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10194094/

相关文章:

shell - 我可以在没有 for 的情况下为 zsh 中文件通配的每个结果执行命令吗?

java - 在Linux服务器上启动netty应用程序

ios - HealthKit 数据在后台无法访问

ios - 如何以编程方式打开和关闭后台获取

php - 使用浏览器提示下载文件

visual-studio-2008 - Visual SourceSafe 2005 与 VS2008 集成 - 缺少评论 checkin 提示

javascript - 如何使用 javascript 验证用户输入

linux - bash 和 zsh 对 operator <<< 解释的区别

linux - 如何使用给定模式 tail -f 最新日志文件

perforce - 为什么我在 zsh 中的 p4 同步上得到 "protected namespace - access denied"而不是 bash?