-1

我想在我的 $PROMPT 中放一些东西来显示后台进程的数量。是否有一个变量或方法可以将一个进程标识为我可以编写脚本的后台进程?

4

2 回答 2

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\] '
于 2013-04-26T05:04:13.190 回答
1

The command jobs gives a list of background processes. You can do:

jobs | wc -l

to count the number of background jobs.

于 2013-04-26T04:51:01.490 回答