2

実行中のすべての Java プロセスを見つけるために、bash シェルで jps を使用しています。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 '{print $2}' | xargs エコー

于 2014-01-09T22:06:31.953 に答える