Linux自动化运维:Shell与Ansible(微课版)
上QQ阅读APP看书,第一时间看更新

任务1.4.4 算术运算符操作

1. 任务描述

在Shell中,算术运算主要用于执行各种数学计算。常见的算术运算包括加法、减法、乘法、除法、求余数、幂运算等。

2. 任务实施

(1)编写Shell脚本,计算三角形的面积、圆的面积和周长,输出结果。


[opencloud@server ~]$ vim calculate01.sh
#!/bin/bash
# 定义三角形的底和高
triangle_base=6
triangle_height=8
# 计算三角形的面积
triangle_area=$(echo "scale=2; $triangle_base * $triangle_height / 2" | bc)
# 定义圆的半径
circle_radius=10
# 计算圆的面积
circle_area=$(echo "scale=2; 3.14 * $circle_radius * $circle_radius" | bc)
# 计算圆的周长
circle_circumference=$(echo "scale=2; 2 * 3.14 * $circle_radius" | bc)
# 输出三角形的面积、圆的面积和周长
echo "三角形面积:$triangle_area"
echo "圆的面积:$circle_area"
echo "圆的周长:$circle_circumference"
# 执行脚本并查看输出结果
[opencloud@server ~]$ bash calculate01.sh
三角形面积:24.00
圆的面积:314.00
圆的周长:62.80

(2)编写Shell脚本,使用bc命令进行算术运算。


[opencloud@server ~]$ vim calculate02.sh
#!/bin/bash
# 定义变量
a=10
b=20
c=30
# 使用bc命令进行算术运算
result1=$(echo "$a + $b" | bc)
result2=$(echo "$a * $b" | bc)
result3=$(echo "scale=2; $a / $b" | bc)
result4=$(echo "$c % $a" | bc)
result5=$(echo "scale=3; $a ^ $b" | bc)
result6=$(echo "$a + $b * $c" | bc)
result7=$(echo "$a * $b + $c" | bc)
result8=$(echo "$c % $a + $b" | bc)
# 输出结果
echo "a + b = $result1"
echo "a * b = $result2"
echo "a / b = $result3"
echo "c % a = $result4"
echo "a ^ b = $result5"
echo "a + b * c = $result6"
echo "a * b + c = $result7"
echo "c % a + b = $result8"
# 执行脚本并查看输出结果
[opencloud@server ~]$ bash calculate02.sh

(3)编写Shell脚本,使用let命令进行算术运算。


[opencloud@server ~]$ vim calculate03.sh
#!/bin/bash
# 定义变量
a=10
b=20
c=30
# 使用let命令进行算术运算
let result1=a+b
let result2=a*b
let result3=c%a
let result4=a**b
let result5=a+b*c
let result6=a*b+c
let result7=c%a+b
# 输出结果
echo "a + b = $result1"
echo "a * b = $result2"
echo "c % a = $result3"
echo "a ^ b = $result4"
echo "a + b * c = $result5"
echo "a * b + c = $result6"
echo "c % a + b = $result7"
# 执行脚本并查看输出结果
[opencloud@server ~]$ bash calculate03.sh

(4)编写Shell脚本,使用expr命令进行算术运算。


[opencloud@server ~]$ vim calculate04.sh
#!/bin/bash
# 定义变量
a=10
b=20
c=30
# 使用expr命令进行算术运算
result1=`expr $a + $b`
result2=`expr $a \* $b`
result3=`expr $c % $a`
result4=`expr $a \* $a \* $a`
result5=`expr $a + $b \* $c`
result6=`expr $a \* $b + $c`
result7=`expr $c % $a + $b`
# 输出结果
echo "a + b = $result1"
echo "a * b = $result2"
echo "c % a = $result3"
echo "a ^ 3 = $result4"
echo "a + b * c = $result5"
echo "a * b + c = $result6"
echo "c % a + b = $result7"
# 执行脚本并查看输出结果
[opencloud@server ~]$ bash calculate04.sh

(5)编写Shell脚本,使用$((…))表达式进行算术运算。


[opencloud@server ~]$ vim calculate05.sh
#!/bin/bash
# 定义变量
a=10
b=20
c=30
# 计算结果
result1=$((a + b))
result2=$((a * b))
result3=$((a / b))
result4=$((a % b))
result5=$((a ** b))
result6=$((a + b * c))
result7=$((a * b + c))
result8=$((c % a + b))
# 输出结果
echo "a + b = $result1"
echo "a * b = $result2"
echo "a / b = $result3"
echo "a % b = $result4"
echo "a ^ b = $result5"
echo "a + b * c = $result6"
echo "a * b + c = $result7"
echo "c % a + b = $result8"
# 执行脚本并查看输出结果
[opencloud@server ~]$ bash calculate04.sh
a + b = 30
a * b = 200
a / b = 0
a % b = 10
a ^ b = 7766279631452241920
a + b * c = 610
a * b + c = 230
c % a + b = 20