如何使用鱼壳将多行输出读入单个变量?

我认为我对鱼中使用read提取多行输入有误解。这是我的基本脚本:

~> ps -aux | grep python | awk '/anaconda2/ {print $2,$9}'
3113 10:11
6079 10:20
12266 14:06
14648 Apr01
23460 Apr01
23984 Apr01
25064 Apr01
27110 00:10

我想使用read --list --line将其读入单个变量,但我只是获得了第一行数据:

~> 
ps -aux | grep python | awk '/anaconda2/ {print $2,$9}' | read -l --list --line pids_starts
~> echo $pids_starts
3113 10:11

如果我使用read -z,我会得到所有值,但它们会被拆分成单独的变量:

~> ps -aux | grep python | awk '/anaconda2/ {print $2,$9}' | read -l --list -z pids_starts
~> echo $pids_starts
3113 10:11 6079 10:20 12504 14:13 14648 Apr01 23460 Apr01 23984 Apr01 25064 Apr01 27110 00:10
~> count $pids_starts
16
~> echo $pids_starts[1]  
3113

如何使用read将输出的每一行设置为不同的数组元素?我也相信我误会了AWK如何限制输出,但是我不确定。

谢谢!

w0werzs 回答:如何使用鱼壳将多行输出读入单个变量?

命令替换将在换行符上分割,因此只需执行以下操作:

set -l pids_starts (ps -aux | grep python | awk '/anaconda2/ {print $2,$9}')

(在我的系统上,{ps -aux必须是ps aux,但是是YMMV)

本文链接:https://www.f2er.com/2524180.html

大家都在问