我困在一个小问题上。我有一个命令管道输出到awk,但我想捕获到一个数组的输出。Bash将awk的输出捕获到数组中
我的例子:
myarr=$(ps -u kdride | awk '{ print $1 }')
但是,捕获所有的输出转换成一个巨大的字符串以逗号分隔:
output: PID 3856 5339 6483 10448 15313 15314 15315 15316 22348 29589 29593 32657 1
我也试过如下:
IFS=","
myarr=$(ps -u kdride | awk '{ print $1"," }')
But the output is: PID, 3856, 5339, 6483, 10448, 15293, 15294, 15295, 15296, 22348, 29589, 29593, 32657,
1
我想能够将每个单独的pid捕获到它自己的数组元素中。设置IFS = '\n'
不会执行任何操作并保留我的原始输出。我需要做些什么才能做到这一点?
您可以使用'myarr =($(ps -u kdride -o pid))'完全跳过'awk'命令。 (请注意保罗答案中指出的额外括号)。 – chepner 2013-02-27 13:56:26