运算符
算术运算符
(无法对字符串、文件的浮点型数进行计算)
运算符
|
举例
|
结果
|
+
(加运算)
|
3+5
|
8
|
-
(减运算)
|
5-3
|
2
|
*
(乘运算)
|
5*3
|
15
|
/
(除运算)
|
8/3
|
2
|
%
(取余运算)
|
15%4
|
3
|
**
(幂运算)
|
5**3
|
125
|
举例说明:
[root@localhost tmp]# let "z=8/5*5"
[root@localhost tmp]# echo "z=$z"
z=5
[root@localhost tmp]# let "z=8*5/5"
[root@localhost tmp]# echo "z=$z"
z=8
[root@localhost tmp]# let "v=5/0"
-bash: let: v=5/0: division by 0 (error token is "0")
[root@localhost tmp]# let "v=5%0"
-bash: let: v=5%0: division by 0 (error token is "0")
算术复合赋值运算符
运算符
|
举例
|
等价表达式
|
+=
|
v+=5
|
v=v+5
|
-=
|
v-=10
|
v=v-5
|
*=
|
v*=5
|
v=v*5
|
/=
|
v/=3
|
v=v/3
|
%=
|
v%=5
|
v=v%5
|
举例说明
[root@localhost tmp]# value=5
[root@localhost tmp]# let value "value+=6"
[root@localhost tmp]# echo "value=$value"
value=11
[root@localhost tmp]# let "value/=5"
[root@localhost tmp]# echo "value=$value"
value=2
[root@localhost tmp]#
位运算符
(
由于位运算符在
shell
编程中很少使用,不参与讨论
)
自增自减运算符
Linux Shell
中提供的自增自减运算符,其作用是自动将变量加
1
或减
1.
自增自减操作符主要包括前置自增(
++variable
)、前置自减(
--variable
)、后置自增(
variable++
)、后置自减(
variable--
)。前置操作首先改变变量的值(
++
用于给变量加
1
,
--
用于给变量减
1
),然后将改变的变量值交给表达式使用;后置变量则是在表达式使用后再改变变量的值。
自增自减操作符的操作只能是变量,不能是常数或表达式,且该变量值必须为整数型。
#!/bin/bash
num1=5
let "a=5+(++num1) "
echo "a=$a"
num2=5
let "b=5+(num2++) "
echo "b=$b"
[root@localhost tmp]# ./increment_and_decrement_exam1.sh
a=11
b=10
数字常量
Linux Shell
脚本或命令是默认将数字十进制的方式进行处理,如果要使用其它进制的方式进行处理,则需对这个数字进行特定的标记或者加前缀。
当使用
0
作为前缀时,表示
8
进制
当使用
0x
进行标记时,表示十六进制
还可用
num#
这这种形式标记
[root@localhost tmp]# let "num1=40"
[root@localhost tmp]# echo "num1=$num1"
num1=40
[root@localhost tmp]# let "num2=040" #
或用
8#40
[root@localhost tmp]# echo "num2=$num2"
num2=32
[root@localhost tmp]# let "num3=0x40" #
或用
16#40
[root@localhost tmp]# echo "num3=$num3"
num3=64
[root@localhost tmp]# let "num1=2#1101100110001101"
[root@localhost tmp]# echo "num1=$num1"
num1=55693
[root@localhost tmp]# let "num=2#23"
-bash: let: num=2#23: value too great for base (error token is "2#23")
转载于:https://blog.51cto.com/76287/1093642