2012-07-07 45 views
0

我試圖執行命令:相同的命令給不同的輸出

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  

這是什麼原因?有什麼建議麼?

回答

0

我在Ubuntu 12.04的bash 4.0上看不到這種行爲。 是您的平臺上提供的pgrep嗎? pgrep一些進程名稱應該爲你做的伎倆。