我正在尝试执行命令:
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
这可能是什么原因?有什么建议吗?
答案 0 :(得分:0)
我在Ubuntu 12.04上的bash 4.0上没有看到这种行为。 你的平台上有pgrep吗? pgrep some-process-name 应该为你做好准备。