【Shell案例】【小数点scale&bc】14、求平均值

本文介绍了两种使用Bash脚本来计算输入数组平均值的方法。第一种利用awk命令,通过读取文件行数(NR)来计算平均值;第二种采用循环结构,结合let、expr和bc命令进行计算。这两种方法都考虑了四舍五入并保留小数点后三位。
摘要由CSDN通过智能技术生成

描述
写一个bash脚本以实现一个需求,求输入的一个的数组的平均值

第1行为输入的数组长度N
第2~N行为数组的元素,如以下为:
数组长度为4,数组元素为1 2 9 8
示例:
4
1
2
9
8

那么平均值为:5.000(保留小数点后面3位)
你的脚本获取以上输入应当输出:
5.000

思路:记录总和和行数,求平均,并进行四舍五入

awk

循环

方法1:awk

#!/bin/bash
awk '{
    if(NR == 1) {
        rows=$0
    } else {
        sum+=$0
    }
}END{
    printf("%.3f",sum/rows)
}' nowcoder.txt

方法2:循环

shell脚本--let、expr、bc、scale的用法

#!/bin/bash
num = 0
row = 0 
sum = 0
while read line
do
# $line在外面表示当前行的值
# 在[]内部,line表示值 if [[ row -eq 0 ]] then num=$line else ((sum+=line)) fi ((row++)) done < nowcoder.txt echo "scale=3;$sum/$num" | bc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值