0
我已經保存在.SH文件shell腳本使輸出2線我只需要1
prog=$1
ps axf | grep $prog | grep -v grep | awk '{print "kill -9 " $1}'
我得到以下輸出下面的命令,當我執行它
kill -9 3184
kill -9 20359
但我只需要它的第一行,因爲這是唯一有效的PID。我怎樣才能從輸出中刪除第二行。
我已經保存在.SH文件shell腳本使輸出2線我只需要1
prog=$1
ps axf | grep $prog | grep -v grep | awk '{print "kill -9 " $1}'
我得到以下輸出下面的命令,當我執行它
kill -9 3184
kill -9 20359
但我只需要它的第一行,因爲這是唯一有效的PID。我怎樣才能從輸出中刪除第二行。
有你想要做什麼的幾個問題:
$prog
的進程列表(不包括您濾除的grep $prog
);你怎麼能確定這是你想要的過程?正確的命令來使用是
pkill $prog`
如評論,這可能會做你想做的建議。
只是爲了信息,並回答你的問題,你可以通過管道輸出到head -n 1
只返回第一行:
<list of commands> | head -n 1
然而,在你的情況下,這將增加第五命令鏈,所以我建議你不要這樣做。
pkill工作。謝謝 – Imdad
最好使用'pkill'。不要重新發明輪子! –
'ps axf |的o/p是多少? grep $ prog | grep -v grep'? –
'grep'後跟'awk'是反模式。你應該使用'awk'!/ grep/{...}'來處理所有沒有字符串「grep」的行。管道和叉子是昂貴的操作。 – Jens