如何解决如何在shell脚本中将命令的输出拆分为数组?
111111
222222
333333
444444
555555
我在命令中定义了一个变量,只是回显那个变量来处理这个数据
现在我想在 shell 脚本中将此数据存储到一个数组中
my_array[0]=111111
my_array[1]=222222
.....
so on
喜欢这个
我尝试了几件事,但所有这些都存储了索引 [0]。我想对这些数据执行一些算术运算,这就是为什么我要将其转换为数组形式。
my_array=()
select sum(a1) sum,date(create_timestamp) date from student where date(create_timestamp) >= 'YYYY-MM-DD' and date(create_timestamp) <= 'YYYY-MM-DD' group by date" | sed '1d'| while read sum date; do
# echo $sum
# echo $date
my_array=( "$sum" )
echo $my_array
# echo ${my_array[0]}
done
解决方法
我认为您的意思是 my_array+=( "$sum" )
添加元素而不是覆盖整个数组,但如果您信任输出格式,为什么不一次性分配所有内容而不是使用 read
循环?>
mapfile -t my_array < <(
select sum(a1) sum,date(create_timestamp) date
from student
where date(create_timestamp) >= 'YYYY-MM-DD'
and date(create_timestamp) <= 'YYYY-MM-DD'
group by date" | sed '1d'
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。