Linux 在bash中向数组添加条目

Linux 在bash中向数组添加条目,linux,bash,Linux,Bash,在bash中,我试图创建一个数组,然后在循环中运行多次(由文件的用户决定),然后以预定的次数向该数组添加一个选项。这是交易数据,例如,我选择2作为因子。然后,程序要求我输入我想要的因子,我输入open(当天的开盘价),然后将bid添加到数组arr中,然后再次询问问题。然后我输入close(当日收盘价),然后close被添加到数组中,最后 arr=像那样开闭。但我运行了代码和问题:“您想检查多少个因子的总数:只是一次又一次地运行,我从未离开过循环,也从未出现过输入被放入数组的情况。非常感谢您对我的

在bash中,我试图创建一个数组,然后在循环中运行多次(由文件的用户决定),然后以预定的次数向该数组添加一个选项。这是交易数据,例如,我选择2作为因子。然后,程序要求我输入我想要的因子,我输入open(当天的开盘价),然后将bid添加到数组arr中,然后再次询问问题。然后我输入close(当日收盘价),然后close被添加到数组中,最后 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+=(${arr[@]} "$factor")
done

echo ${arr[@]}
你有打字错误

for (( x=1; x=total; x++ ))
应该是

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

在第一个例子中,你将total赋值给x,这总是真的。在第二个示例中,您正在检查是否相等。

您在array append上几乎得到了正确的结果。请记住,
+=
操作符不需要在RHS上再次对数组进行完全引用。e、 g.只是

arr+=($factor)
在数组变量
arr
的末尾追加
$factor
就足够了

对脚本进行如下修改:

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[@]}
factor=“”
总数=0
声明-arr
阅读-p“您希望检查多少个因素的总数:”-e-i“$total”总数

(x=1;很高兴知道,请考虑随时接受答案。