How хан I add integers in an array

гm trying to add some number in an array.

Example:

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

гve подарил it this way but I want to используйте an array and then sum up the numbers in в 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"
4
задан 4 December 2015 в 17:52

5 ответов

Можно сделать:

$ 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
12
ответ дан 23 November 2019 в 11:35
num1=2
num2=4
num3=8
array=($num1 $num2 $num3)
declare -i sum
IFS=+ sum="${array[*]}"
echo $sum

Вывод:

14
<час>

См.: help declare

3
ответ дан 23 November 2019 в 11:35

Используя цикл в Bash:

#!/bin/bash

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

Выводы 6.

2
ответ дан 23 November 2019 в 11:35

Можно было также использовать awk для выполнения суммирования цикличного выполнения:

$ echo "${arr[@]}"
1 2 3
$ awk 'BEGIN{for (arg in ARGV) sum += arg;print sum}' "${arr[@]}"
6
1
ответ дан 23 November 2019 в 11:35

В Python очень просто добавить список чисел.

$ python -c 'print sum([1,2,3])'

Выводы 6.

3
ответ дан 23 November 2019 в 11:35

Другие вопросы по тегам:

Похожие вопросы: