后台进程数

时间:2013-04-26 04:43:05

标签: shell

我想在$ PROMPT中添加一些显示后台进程数的内容。是否有变量或方法将流程标识为可以编写脚本的后台程序?

2 个答案:

答案 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\] '