首页 > 解决方案 > 如何添加几个平方的总和(bourne 脚本)

问题描述

我正在尝试编写一个脚本,它将整数列表作为命令行参数,计算每个整数的平方,然后给我平方和。这是我到目前为止所拥有的...

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

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

如您所见,我有一个简单的 for 循环来处理正方形,我只是不确定如何获得这些正方形的总和并将其回显到屏幕上。有什么建议么?

标签: linuxshellsh

解决方案


在命令行上 -

$: 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 "$@"

推荐阅读