Bash教程

Bash 算术运算符

Bash 算术运算符

在本主题中,我们将了解如何在 Bash 中使用算术运算符。
取决于我们想要通过我们的脚本,我们可能需要在某个时候应用算术运算符。像变量一样,它们相当容易应用。在bash脚本中,我们可以对数值进行算术运算,得到想要的结果。
Bash Shell支持的算术运算符有11种。
请看下表演示每个算术运算符的语法、描述和示例:
操作员 说明 示例
+ 加法,测量数字(操作数)的加法 $(( 10 + 3 )), 结果=13
- 减法,测量从第一个操作数减去第二个操作数 $(( 10-3 )), 结果=7
* 乘法,测量操作数的乘法。 $(( 10 * 3 )), 结果=30
/ 除法,测量第一个操作数除以第二个操作数并返回商数。 $(( 10/3 )), 结果=3
** 取幂,测量第二个操作数的第一个操作数的幂的结果。 $(( 10 ** 3 )), 结果=1000
% 取模,测量第一个操作数除以第二个操作数的余数。 $(( 10 % 3 )), 结果=1
+= Increment Variable by Constant-用于通过提供的常量增加第一个操作数的值。 x=10 让 "x += 3" 回声$x 结果=13
-= Decrement Variable by Constant-用于将第一个操作数的值递减提供的常量。 x=10 让"x-= 3" 回声$x 结果=7
*= Multiply Variable by Constant-用于将第一个操作数的值乘以提供的常量。 x=10 让"x *= 3" 回声$x 结果=30
/= Divide Variable by Constant-用于计算(变量/常量)的值并将结果存回变量。 x=10 让 "10/= 3" 回声$x 结果=3
%= 变量除以常量的余数-用于计算(变量%常量)的值并将结果存回变量。 x=10 让"10%=3" 回声$x 结果=1

在 Bash 中执行算术运算

有很多选项可以在 bash shell 中执行算术运算。下面给出了一些我们可以用来执行算术运算的选项:

双括号

双括号是执行基本算术运算的最简单机制贝壳。我们可以通过使用带或不带前导 $ 的双括号来使用这种方法。
语法
((expression))
我们可以应用四种不同的方式来实现所需的目标。查看下面给出的方法,以了解如何使用双括号机制(假设我们要将数字 10 和 3 相加):
方法 1
Sum=$((10+3))
echo "Sum = $Sum"
方法二
((Sum=10+3))
echo "Sum = $Sum"
方法三
Num1=10
Num2=3
((Sum=Num1+Num2))
echo "Sum = $Sum"
方法四
Num1=10
Num2=3
Sum=$((Num1+Num2))
echo "Sum = $Sum"
所有这些方法都将提供与以下相同的输出:
     Sum = 13
以下示例演示了在 Bash shell 脚本中使用双括号进行算术运算:
Bash 脚本
#!/bin/bash
x=8
y=2
echo "x=8, y=2"
echo "Addition of x & y"
echo $(( $x + $y ))
echo "Subtraction of x & y"
echo $(( $x-$y ))
echo "Multiplication of x & y"
echo $(( $x * $y ))
echo "Division of x by y"
echo $(( $x / $y ))
echo "Exponentiation of x,y"
echo $(( $x ** $y ))
echo "Modular Division of x,y"
echo $(( $x % $y ))
echo "Incrementing x by 5, then x= "
(( x += 5 )) 
echo $x
echo "Decrementing x by 5, then x= "
(( x-= 5 ))
echo $x
echo "Multiply of x by 5, then x="
(( x *= 5 ))
echo $x
echo "Dividing x by 5, x= "
(( x /= 5 ))
echo $x
echo "Remainder of Dividing x by 5, x="
(( x %= 5 ))
echo $x
输出
Bash 算术运算符

Let 构造

Let 是 Bash 的一个内置命令,它允许我们执行算术运算。它遵循基本格式:
语法
let <arithmetic expression>
下面举例说明如何在 Bash 脚本中使用 let 命令:
Bash 脚本
#!/bin/bash
x=10
y=6
z=0
echo "Addition"
let "z = $(( x + y ))"
echo "z= $z"
echo "Substraction"
let "z = $((x-y ))"
echo "z= $z"
echo "Multiplication"
let "z = $(( x * y ))"
echo "z = $z"
echo "Division"
let "z = $(( x / y ))"
echo "z = $z"
echo "Exponentiation"
let "z = $(( x ** y ))"
echo "z = $z"
echo "Modular Division"
let "z = $(( x % y ))"
echo "z = $z"
let "x += 5"
echo "Incrementing x by 5, then x= "
echo $x
let "x-= 5"
echo "Decrementing x by 5, then x= "
echo $x
let "x *=5"
echo "Multiply of x by 5, then x="
echo $x
let "x /= 5"
echo "Dividing x by 5, x= "
echo $x
let "x %= 5"
echo "Remainder of Dividing x by 5, x="
echo $x
输出
Bash 算术运算符

反引号

在 bash 脚本中,也可以使用 反引号 和 expr(称为通用表达式求值器)来执行算术扩展。 `expr` 类似于 'let',但它不会将结果保存到变量中。它直接打印结果。与 let 不同的是,我们不需要将表达式括在引号中。我们需要在表达式的项之间使用空格。需要注意的是,我们应该在命令替换中使用"expr"来将输出保存到变量中。
我们也可以使用不带"反引号"的"expr"。
语法
`expr item1 operator item2`
or
expr item1 operator item2
下面举例说明如何在 Bash 脚本中使用反引号和 expr:
Bash 脚本程序
#!/bin/bash
#Basic arithmetic using expr
echo "a=10, b=3"
echo "c is the value of addition c=a+b"
a=10
b=3
echo "c= `expr $a + $b`"
输出
Bash 算术运算符

结论

在本主题中,我们讨论了如何使用算术运算符来执行算术运算。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4