相同的命令给不同的输出

问题描述:

我试图执行命令:相同的命令给不同的输出

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

,这让我与进程名的进程的PID:“一些进程名”

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

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

这是什么原因?有什么建议么?

我在Ubuntu 12.04的bash 4.0上看不到这种行为。 是您的平台上提供的pgrep吗? pgrep一些进程名称应该为你做的伎俩。