Linux 在bash中向数组添加条目
在bash中,我试图创建一个数组,然后在循环中运行多次(由文件的用户决定),然后以预定的次数向该数组添加一个选项。这是交易数据,例如,我选择2作为因子。然后,程序要求我输入我想要的因子,我输入open(当天的开盘价),然后将bid添加到数组arr中,然后再次询问问题。然后我输入close(当日收盘价),然后close被添加到数组中,最后 arr=像那样开闭。但我运行了代码和问题:Linux 在bash中向数组添加条目,linux,bash,Linux,Bash,在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;很高兴知道,请考虑随时接受答案。