好,所以我尝试使用
执行kill命令$api_key = 'realapikey';
其中ff是包含pid列表的文本文件。
kill < ff // Doesn't work
cat ff | kill //Doesn't work
以上两个命令的kill输出如下:
7688 7697 7705 7760 7764 7772 7785 7810 7817 7865 7874 8036 8097
答案 0 :(得分:2)
你试过这个吗?
kill $(cat ff)
答案 1 :(得分:1)
这也是:
$ cat ff|xargs kill
答案 2 :(得分:1)
shell内置kill
或外部/bin/kill
不通过标准输入流获取进程ID(或作业ID)。您需要将它们作为参数传递给kill
,所以:
kill -- $(<ff)
应该这样做。
如果你想逐个杀死它们并在中间做某事,你可以用pids创建一个数组并迭代它们:
pids=( $(<file.txt) ) && for i in "${pids[@]}"; do echo "killing $i"; kill -- "$i"; done
答案 3 :(得分:0)
使用egrep(或grep -E
)来解决某些空白异常的选项
egrep -o "[0-9]+" ff | kill "$(cat -)"
哪个适用于看起来像这样的文件;
7688 7697 7705 7760 7764 7772
7785 7810 7817
7865
7874
8036 8097
答案 4 :(得分:0)
感谢您的回复。这两个都有效。
kill $(cat ff)
kill -- $(<ff)
这意味着kill不接受来自标准输入的输入。