算术运算符,算术运算语表达式,随机数生成器,let,var= [ 算 术 表 达 式 ] , v a r = [算术表达式],var= [],var=((算术表达式)),增强型赋值等详解


算术运算符

常见运算符

+, -, *, /, %取模(取余), **(乘方)

算术运算语表达式

  • let var=算术表达式
  • var=$[算术表达式]
  • var=$((算术表达式))
  • var=$(expr arg1 arg2 arg3 …)
  • declare –i var = 数值
  • echo ‘算术表达式’ | bc

随机数生成器:$RANDOM(0-32767)

echo [ [ [RANDOM%50] :0-49之间随机数

详解

let var=算术表达式

变量前面可以不加$作为变量引用,直接写变量名即可

[root@zaishu sh]# a=1
[root@zaishu sh]# b=2
[root@zaishu sh]# let c=a+b
[root@zaishu sh]# echo $c
3
[root@zaishu sh]# let d=c%2
[root@zaishu sh]# echo $d
1

var=$[算术表达式]

[root@zaishu sh]# echo $[2+4]
6
[root@zaishu sh]# echo $[c+d]
4

var=$((算术表达式))

[root@zaishu sh]# echo $((c+d))
4
[root@zaishu sh]# echo $((c-d))
2

var=$(expr arg1 arg2 arg3 …)

expr是一个表达式的命令,可以用于直接计算,注意: 要空格才可以进行运算。

[root@zaishu sh]# expr 20 + 10
30
[root@zaishu sh]# expr 20+10
20+10

乘法符号需要转义,如*

[root@zaishu sh]# expr 20 * 10  //这个里面的* 表示的是任意字符的通配符,所以报错
expr: syntax error

 [root@zaishu sh]# expr 20  \* 10  //转义,表示为乘号
200

declare –i var = 数值

declare用来声明变量,declare -i 显示声明这个变量类型是数字。

[root@zaishu sh]# declare -i  a=15
[root@zaishu sh]# declare -i  b=14
[root@zaishu sh]# let c=a+b
[root@zaishu sh]# echo $c
29

echo ‘算术表达式’ | bc

通过echo作为管道的输出到bc(计算器)

[root@zaishu sh]# echo $a+$b
15+14
[root@zaishu sh]# echo $a+$b|bc
29

RANDOM随机数

echo [ [ [RANDOM%50] :0-49之间随机数。注意每次都是随机值。

[root@zaishu sh]# echo $[RANDOM%50]
40
[root@zaishu sh]# echo $[RANDOM%50]
30
[root@zaishu sh]# echo $[RANDOM%50]
25
[root@zaishu sh]# echo $[RANDOM%50]
35
[root@zaishu sh]# echo $[RANDOM%50]
6
[root@zaishu sh]# echo $[RANDOM%50]
31
[root@zaishu sh]# echo $[RANDOM%50]
6
[root@zaishu sh]# echo $[RANDOM%50+1]
18
[root@zaishu sh]# echo $[RANDOM%50+1]
36
[root@zaishu sh]# echo $[RANDOM%50+1]
23
[root@zaishu sh]# echo $[RANDOM%50+1]
5
增强型赋值

运算符含义

运算符 含义
+= i+=10 相当于 i=i+10
-= i-=j 相当于 i=i-j
*= i*=j 相当于 i=i*j
/= i/=j 相当于 i=i/j
%= i%=j 相当于 i=i%j
++ i++,++i 相当于 i=i+1
i–,--i 相当于 i=i-1

示例

[root@zaishu ~]# i=10
[root@zaishu ~]# let i+=2
[root@zaishu ~]# echo $i
12
[root@zaishu ~]# let i-=2
[root@zaishu ~]# echo $i
10
[root@zaishu ~]# j=5
[root@zaishu ~]# let i*=j
[root@zaishu ~]# echo $i
50
[root@zaishu ~]# let i/=j
[root@zaishu ~]# echo $i
10
[root@zaishu ~]# let i++
[root@zaishu ~]# echo $i
11
[root@zaishu ~]# echo ++i
++i
[root@zaishu ~]# echo $i
12
[root@zaishu ~]# let --i
[root@zaishu ~]# echo $i
11
[root@zaishu ~]# let i--
[root@zaishu ~]# echo $i
10
逻辑运算符
  • 与(&&):逻辑规则是两真才真。
&&= 真
真 &&= 假
假 &&= 假
假 &&=
  • 或(|):逻辑规则是只有一个为真就为真。
|= 真
真 |= 真
假 |= 假
假 |=
  • 异或(^):逻辑规则是两个不同就为真。
真 ^ 真 = 假
真 ^ 假 = 真
假 ^ 假 = 假
假 ^ 真 =
  • 非(!)
!=!=

示例

[root@zaishu ~]# true
[root@zaishu ~]# echo $?
0
[root@zaishu ~]# false
[root@zaishu ~]# echo $?
1
[root@zaishu ~]# ! true
[root@zaishu ~]# echo $?
1
[root@zaishu ~]# ! false
[root@zaishu ~]# echo $?
0

总结

算术运算符,算术运算语表达式,随机数生成器,let,var= [ 算 术 表 达 式 ] , v a r = [算术表达式],var= [],var=((算术表达式)),增强型赋值等详解