Как сложить сумму в несколько квадратов (сценарии Борна) - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь написать скрипт, который принимает список целых чисел в качестве аргументов командной строки, вычисляет квадрат каждого целого числа, а затем дает мне сумму квадратов. Вот что у меня есть ...

if [ $# = 0 ]
then
    echo "Usage: $0 integer-list"
    exit 1
fi

for list in "$@"
do
    echo "The square of $list is: $(($list*$list))" 
done

Как видите, у меня есть простое значение для l oop, чтобы иметь дело с квадратами, я просто не знаю, как получить сумму эти квадраты и отражают это на экране. Есть предложения?

Ответы [ 2 ]

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

В командной строке -

$: for n in 2 3 4
> do q=$((n*n))
>    echo "square of $n is $q"
>    s=$((s+q))
> done; echo "Sum of squares: $s"
square of 2 is 4
square of 3 is 9
square of 4 is 16
Sum of squares: 29

В скрипте вы можете просто сказать

for n in "$@"
0 голосов
/ 27 апреля 2020

Просто добавьте сумму предыдущих квадратов к текущему квадрату элемента из списка.

#!/bin/bash

if [ $# = 0 ]
then
    echo "Usage: $0 integer-list"
    exit 1
fi

SUM=0
for ITEM in "$@"
do
  SUM=$(($SUM+$ITEM*$ITEM))
done

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