ksh で UID のプロセス情報をエコーする必要があります。
#!/bin/ksh
read userid
arr=$(ps -elf | nawk -v pattern=${userid} '{if ($3==pattern) print}')
arrlen=${#arr[@]}
echo $arrlen
for f in "${arr[@]}"; do
echo $f
done
arr は、この UID のプロセスの配列です。arrlen は常に 1 です。なぜですか? 2 番目の質問: arr のすべての要素をエコーしようとすると、出力は次のようになります。
0
S
s157759
22594
1
0
50
20
?
2:06
/usr/lib/firefox/firefox-bin
それ以外の
0 S s157759 22594 1 0 50 20 ? 62628 ? 11:14:06 ? 2:06 /usr/lib/firefox/firefox-bin
一行で
単語ではなく、行で配列を作成したい。