我对 bash 很陌生,目前正忙于一个小项目。我试图列出每个数组(num1 和 num2)的组合分数,然后使用 C 样式循环显示输出。这是我想要的输出:
Result_1: 71
Result_2: 96
Result_3: 101
Result_4: 86
Result_5: 148
可以看到,num1数组中的第一个数字与num2数组中的第一个数字相加,形成Result_1,num1数组中的第二个数字与num2数组中的第二个数字相加,形成Result_2 .. 等等。但是,当这不是我想要的结果时,我只能获取并显示所有结果的前两个数字的总和(13 和 58 = 71)。我还希望第一个结果为“Result_1”而不是“Result_0”,但似乎也无法弄清楚这一点。这是我当前的代码:
#!/bin/bash
num1=(13 28 11 72 50)
num2=(58 68 90 14 98)
len=${#num1[*]}
for (( i=0; i<${len}; i++ ));
do
sum=$(($num1 + $num2))
echo "Result_"$i":" $sum
done
任何帮助将不胜感激。谢谢!
最佳答案
您只是忘记将索引链接到数组。以下循环将完成正确的工作。
for (( i=0; i<${len}; i++ ))
do
sum=$((${num1[$i]} + ${num2[$i]}))
echo "Result_$(($i+1)):" $sum
done
关于arrays - 在 Bash 中添加和列出数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67224059/