我在bash shell中使用jps来查找所有正在运行的java进程。我希望能够使用jps输出的PID列表。我可以使用
将它们成功打印到屏幕上jps | awk '{print $1}'
但我希望运行多个进程,我想将它们放在一个数组中。我找到了另一个使用
的例子awk '{arr[$1]}'
因为他们想要在数组中输出的是一列。这类似于我想要放入数组的PID列。
是否可以将它们管道化为数组?我无法在需要时更改数组的索引。有一个更好的方法吗?
任何指导都会受到热烈欢迎。 感谢。
答案 0 :(得分:3)
根据您的第一个示例,您应该能够使用
捕获bash数组中的所有进程IDpids=( $(jps | awk '{print $1}') )
一旦进入数组,就可以迭代它们:
for pid in "${pids[@]}"; do
echo $pid
done
或单独访问
echo "${pids[0]}"
echo "${pids[1]}"
使用${#pids[@]}
找到存储在数组中的总数。
答案 1 :(得分:0)
使用xargs:
ps aux | grep -ie java | awk'{print $ 2}'| xargs echo