【发布时间】:2015-05-30 05:17:14
【问题描述】:
我使用了以下 bash 代码:
for pid in `top -n 1 | awk '{if($8 == "R") print $1;}'`
do
kill $pid
done
上面写着:
./kill.sh: line 3: kill: 29162: arguments must be process or job IDs
./kill.sh: line 3: kill: 29165: arguments must be process or job IDs
./kill.sh: line 3: kill: 29166: arguments must be process or job IDs
./kill.sh: line 3: kill: 29169: arguments must be process or job IDs
导致此错误的原因以及如何在 Bash 中终止进程?
【问题讨论】:
-
top发出一个你需要跳过的标题 -
$8 == "R"在 awk 命令中做了什么? -
@anubhava,检查第 8 个字段是否为
R -
:) 我想我也知道很多,但在我的 OSX 8th 字段上是
MEM。我认为top命令的输出因操作系统而异。 -
@anubhava,这是 GNU/Linux 上的进程状态。 R 表示正在运行或准备运行。