在bash中向数组添加条目

时间:2013-05-09 19:13:14

标签: linux bash

在bash中,我正在尝试创建一个数组,然后多次运行循环(由文件的用户确定),然后将该选择添加到该数组预定次数。这是交易数据,例如,我选择2作为因素。然后程序要求我输入我想要的因素,然后我打开(当天的开盘价),然后将出价添加到数组arr并再次询问问题。然后我收盘(当天收盘价)然后收盘加入阵列,最后收盘 arr =那样打开关闭。但是我运行代码和问题:"How many factors would you like to check total: "只是一遍又一遍地运行,我从不离开循环,它似乎从未出现输入被放入数组。任何有关我的错误的帮助非常感谢。感谢。

   factor=""
    total=0
    declare -a arr


read -p "How many factors would you like to check total: " -e -i "$total" total

for (( x=1; x=total; x++ ))
do
        read -p "Enter factor from list: " -e -i "$factor" factor       
        arr+=(${arr[@]} "$factor")
done

echo ${arr[@]}

2 个答案:

答案 0 :(得分:4)

你有一个错字

for (( x=1; x=total; x++ ))

应该是

for (( x=1; x==total; x++ ))

在第一个中,你将总数分配给x,这总是正确的。在第二个中,你正在检查是否平等。

答案 1 :(得分:4)

你几乎在阵列追加上得到了正确的答案。请记住+=运算符在RHS上不需要再次对数组进行完全引用。例如刚

arr+=($factor)

只需在数组变量$factor的末尾附加arr即可。

稍微修改一下你的脚本:

factor=""
total=0
declare -a arr

read -p "How many factors would you like to check total: " -e -i "$total" total

for (( x=1; x<=total; x++ ))
do
   read -p "Enter factor from list: " -e -i "$factor" factor       
   arr+=($factor)
done

echo ${arr[@]}