ps -ef | wc -l将标签添加到行的前面

时间:2014-01-21 14:35:35

标签: bash ps wc

我正在尝试存储ps的输出,然后比较它 我使用以下行:

siteminder_running=`ps -ef | grep $iplanet_home | grep LLAWP | wc -l`

当我尝试比较输出时,我发现该变量在数字前面有一个标签。

这是输出:

-       0- value

可能是什么问题?

2 个答案:

答案 0 :(得分:2)

像ruakh指出的那样你可以使用grep -c

siteminder_running=`ps -ef | grep $iplanet_home | grep -c LLAWP`

一般来说,为了修复空白区域,我使用xargs echo这样:

siteminder_running=`ps -ef | grep $iplanet_home | grep LLAWP | wc -l | xargs echo`

答案 1 :(得分:0)

大多数Unix和GNU / Linux版本提供的wc(1)实用程序打印到用户终端输入文件名和计数(行/字符/您要求它打印的内容),由TAB分隔。

如果是标准输入,则没有输入文件名,只会在计数前面显示一个TAB。

有几种方法可以避免这种情况,例如:

ps -ef | grep $iplanet_home | grep LLAWP | wc -l | awk '{ printf "%d\n", $0 }'
printf $(ps -ef | grep $iplanet_home | grep LLAWP | wc -l)
ps -ef | grep $iplanet_home | grep LLAWP | wc -l | sed -e 's/^[ \t]*//'

如上所述,这些只是一些例子,实际上有几十种方法可以实现这一点。