运算符

算术运算符 (无法对字符串、文件的浮点型数进行计算)

运算符

举例

结果

+ (加运算)

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")