是否可以自定义提示以显示是否有后台作业?

是否可以自定义提示以显示是否有后台作业?

是否可以自定义 bash 提示符以显示是否有后台作业?我发现很容易忘记还有后台工作。

假设提示是...

$

有没有办法让它显示后台作业的数量?例如,如果使用 发送到后台的两个后台作业CTRL+Z,则提示将是...

2 $

答案1

输入\j您的提示。来自bash手册:

\j 当前由 shell 管理的作业数量


请记住,提示确实会过时,并且作业可以随时完成,因此,如果您让终端处于空闲状态,您将需要重新显示提示。


\j您可以只在存在作业时才显示提示,但代价是需要额外的过程来打印提示。

PROMPT_COMMAND='hasjobs=$(jobs -p)'
PS1='${hasjobs:+\j }\$ '

答案2

在 zsh 中,您可以使用%j来指示作业数量,"%1(j.%j.)"如果至少有一个正在运行,则显示作业数量,否则不显示任何内容(而不是 0)。例如。RPROMPT="%1(j.%j.)"将其显示在右侧的提示中。手册中的更多信息这个答案

相关内容