Shell program to find average of n numbers
Let's write a shell program to find average of n numbers
Algorithm
1. Get N (Total Numbers)
2. Get N numbers using loop
3. Calculate sum
4. Average = sum / N
5. print the result.
Average of n numbers - Shell Script
#shell script to find average of n numbers echo "Enter Size(N)" read N i=1 sum=0 echo "Enter Numbers" while [ $i -le $N ] do read num #get number sum=$((sum + num)) #sum+=num i=$((i + 1)) done avg=$(echo $sum / $N | bc -l) echo $avg
We can't directly perform floating point arithmetic in bash.
So that we have used bc "An arbitrary precision calculator language" to calculate the avg.
Output
Enter Size(N)
5
Enter Numbers
10
20
30
40
50
30.00000000000000000000
Enter Size(N)
3
Enter Numbers
1
2
5
2.66666666666666666666
Use printf to print required floating points
#shell script to find average of n numbers echo "Enter Size(N)" read N i=1 sum=0 echo "Enter Numbers" while [ $i -le $N ] do read num #get number sum=$((sum + num)) #sum+=num i=$((i + 1)) done avg=$(echo $sum / $N | bc -l) printf '%0.2f' "$avg"
%0.2f will print only 2 floating numbers.
Output
Enter Size(N)
5
Enter Numbers
10
20
30
40
50
30.00
Enter Size(N)
3
Enter Numbers
1
2
5
2.67
Useful Resources
To learn more shell script examples, you can visit the link