我需要编写一个bash shell脚本来获取通过命令行给出的整数参数的平均值(四舍五入到2点)。其中一个要求是我必须使用循环和至少一个变量。例如,-50,0,50和100应输出25.00。
这就是我所拥有的(获得错误):
#!/bin/bash
sum = 0
if [ $* -ls 1 ]; then
echo "no numbers inputted"
exit 1
for number in $*; do
sum += number
avg = $(echo "$sum / $* | bc -l")
printf "Average input = %.2f\n" $avg
我做错了什么?
答案 0 :(得分:0)
简易脚本:
#!/bin/bash
sum=0
for number in $*
do
sum=$(expr $sum + $number)
done
av=$(echo $sum / $# | bc -l)
echo "sum = $sum"
echo "av = $av"
答案 1 :(得分:-1)
如果您不介意依赖Python,可以尝试: http://stromberg.dnsalias.org/~strombrg/stddev.html你只需要算算算术:
$ seq 10000 | ./stddev
below cmd output started 2018 Sun Jan 21 11:57:25 AM PST
minimum 1
maximum 10000
range 9999
count 10000
sum 50005000
arithmetic_mean 5000.5
geometric_mean 3680.8271822200186
median 5000.5
mode none
standard_deviation 2,886.751332
median_absolute_deviation 2,500.000000
mean_absolute_deviation 2,500.000000