2

我在 bash shell 中使用 jps 来查找所有正在运行的 java 进程。我希望能够使用 jps 输出的 PID 列表。我可以使用成功地将它们打印到屏幕上

jps | awk '{print $1}'

但我希望有多个进程正在运行,我想将它们放在一个数组中。我发现了另一个他们使用的例子

awk '{arr[$1]}'

因为他们想要在数组中的输出是单列。这类似于我想放入数组中的 PID 列。

是否可以将它们通过管道传输到数组中?我无法在需要时更改数组的索引。有一个更好的方法吗?

任何指导都会受到热烈欢迎。谢谢。

4

2 回答 2

3

根据您的第一个示例,您应该能够使用 bash 数组捕获所有进程 ID

pids=( $(jps | awk '{print $1}') )

一旦进入数组,它们就可以被迭代:

for pid in "${pids[@]}"; do
     echo $pid
done

或单独访问

echo "${pids[0]}"
echo "${pids[1]}"

用 找到存储在数组中的总数${#pids[@]}

于 2012-08-03T14:29:00.960 回答
0

使用 xargs:

ps辅助| grep -ie java | awk '{打印 $2}' | xargs 回声

于 2014-01-09T22:06:31.953 回答