如何在数组中添加整数

如何在数组中添加整数

我正在尝试在数组中添加一些数字。

例子:

array=( 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 )

我已经这样做了,但我想使用一个数组,然后在 shell 脚本中对数字求和。

num1=2
num2=4
num3=8
num4=10
num5=12
num6=14
num7=16
num8=18
num9=20
sum=$((num1+num2+num3+num4+num5+num6+num7+num8+num9))
echo "The sum is: $sum"

答案1

你可以做:

$ array=( 2, 4, 6, 8, 10, 12, 14, 16, 18, 20)

$ echo "${array[@]/,/+}" | bc               
110
  • ${array[@]/,/+}是一个参数扩展模式,它将所有元素替换,+array

  • 然后bc简单地做加法

为了更清楚起见,我们稍微分解一下:

$ array=( 2, 4, 6, 8, 10, 12, 14, 16, 18, 20)

$ echo "${array[@]/,/+}"                     
2+ 4+ 6+ 8+ 10+ 12+ 14+ 16+ 18+ 20

$ echo "${array[@]/,/+}" | bc
110

答案2

num1=2
num2=4
num3=8
array=($num1 $num2 $num3)
declare -i sum
IFS=+ sum="${array[*]}"
echo $sum

输出:

14

看:help declare

答案3

在 Bash 中使用循环:

#!/bin/bash

nums=(1 2 3)
total=0
for n in ${nums[@]}
do
  (( total += n ))
done
echo $total

输出 6。

答案4

也可以使用它awk来执行循环求和:

$ echo "${arr[@]}"
1 2 3
$ awk 'BEGIN{for (arg in ARGV) sum += arg;print sum}' "${arr[@]}"
6

相关内容