在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[@]}
答案 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[@]}