问题描述
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'
)