算术运算符,算术运算语表达式,随机数生成器,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=((算术表达式)),增强型赋值等详解