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

par*_*oid 5 bash prompt jobs background-process

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

说如果提示是...

$
Run Code Online (Sandbox Code Playgroud)

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

2 $
Run Code Online (Sandbox Code Playgroud)

jw0*_*013 19

\j你的提示。从bash 手册

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


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


以需要额外的过程来打印您的提示为代价,您可以\j仅在存在任何作业时才出现。

PROMPT_COMMAND='hasjobs=$(jobs -p)'
PS1='${hasjobs:+\j }\$ '
Run Code Online (Sandbox Code Playgroud)