我将以下命令保存在 .sh 文件
中prog=$1
ps axf | grep $prog | grep -v grep | awk '{print "kill -9 " $1}'
执行时我得到以下输出
kill -9 3184
kill -9 20359
但我只需要它的第一行,因为那是唯一有效的pid。如何从输出中删除第二行。
答案 0 :(得分:2)
您想要做的事情有几个问题:
$prog
的流程列表的第一行(不包括您筛选出来的grep $prog
);你怎么能确定你想要的过程?要使用的正确命令是
pkill $prog`
正如评论中所建议的那样,可能会做你想做的事。
只是为了获取信息并回答您的问题,您可以将输出管道传输到head -n 1
以仅返回第一行:
<list of commands> | head -n 1
但是,在你的情况下,这会给链添加第五个命令,所以我建议你不要这样做。