Общая сумма всех значений - PullRequest
0 голосов
/ 21 апреля 2020

Я изучаю скрипт Ubuntu bash и у меня возникли некоторые проблемы, я не хотел спрашивать это, потому что, вероятно, решение будет очень очевидным, но здесь мы ...

Я хочу получить сумму значений.

Так что в этом случае сумма равна 90.

Что делает код:

Если значение первого параметра равно 2, сообщение со значением первого параметра будет отображаться первым. С помощью for l oop выведите значение третьего параметра, умноженное на значения от 1 до значения второго параметра.

Это вход для терминала: ./param.sh 2 5 6

Это вывод кода:

6 * 1 = 6
6 * 2 = 12
6 * 3 = 18   
6 * 4 = 24
6 * 5 = 30

Это вывод кода, который я хочу:

6 * 1 = 6
6 * 2 = 12
6 * 3 = 18  
6 * 4 = 24
6 * 5 = 30
Total sum is 90

Вот код:

#!/bin/bash
if [ $1 == 2 ]
then
    echo "the first parameter has value " $1
for(( a = 1; a <= $2; a++ ))
do
    res=$[ $3 * $a ]
    echo " $3 * $a = $res "
done
fi

//we need.. echo "Total sum is " 

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Поскольку у вас есть только конечная арифметическая серия c, вы можете рассчитать ее непосредственно как

echo "Sum is: $(( ($2*$3*($2+1))/2 ))"
0 голосов
/ 21 апреля 2020

Вы ищете bash арифметика c оценка:

#!/bin/bash

if [ $1 == 2 ]
then
    echo "the first parameter has value " $1
for(( a = 1; a <= $2; a++ ))
do
    ((res=$3 * a))
    echo " $3 * $a = $res "
    ((sum+=res))
done
fi


echo "Sum is: $sum"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...