同一命令给出不同的输出

时间:2012-07-07 15:42:59

标签: shell

我正在尝试执行命令:

ps -e|grep some-process-name|grep -v grep|awk '{print $1}'|grep -v $$  

它给了我进程的pid和进程名称:“some-process-name”

但是当我在shell脚本中使用相同的long命令时,进程名称作为命令行参数传递并通过“$ 1”使用,我在输出中得到两个pid。

PIDS=$(ps -e|grep $1|grep -v grep|awk '{print $1}'|grep -v $$)
echo $PIDS    

这可能是什么原因?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我在Ubuntu 12.04上的bash 4.0上没有看到这种行为。 你的平台上有pgrep吗? pgrep some-process-name 应该为你做好准备。