我想在$ PROMPT中添加一些显示后台进程数的内容。是否有变量或方法将流程标识为可以编写脚本的后台程序?
答案 0 :(得分:1)
命令作业提供后台进程列表。你可以这样做:
jobs | wc -l
计算后台作业的数量。
答案 1 :(得分:1)
如果您使用的是Linux,并使用 bash shell,则可以使用$( )
作为$PS
变量的一部分来运行命令。命令ps -ea -ocmd,stat | grep -w S | wc -l
应该给你一个当前没有睡觉的所有进程的列表(我假设你的意思是“背景”)。所以说正常的提示是:
PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
然后您可以通过以下方式插入后台过程
PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W $( ps -ea -ocmd,stat | grep -w S | wc -l ) \$\[\033[00m\] '
会产生如下提示:myhost ~ 61 #
如果您想要当前shell的实际背景作业,请将命令替换为jobs | wc -l
:
PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W $( jobs | wc -l ) \$\[\033[00m\] '