我执行了一个生成格式数据的命令
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'
)