shell脚本-算术运算

**bash中的算术运算:
+, -, *, /, %取模(取余), (乘方)
乘法符号有些场景中需要转义
实现算术运算:

(1) let var=算术表达式
(2) var=$[算术表达式]
(3) var=$((算术表达式))
(4) var=$(expr arg1 arg2 arg3 ...)
(5) declare –i var = 数值
(6) echo ‘算术表达式’ | bc

内建的随机数生成器变量:

$RANDOM 取值范围:0-32767

范例:
#生成 0 - 49 之间随机数

[root@server02 ~]# echo $[$RANDOM%50]
44
[root@server02 ~]# echo $[$RANDOM%50]
23
[root@server02 ~]# echo $[$RANDOM%50]
7
[root@server02 ~]# echo $[$RANDOM%50]
24

#随机字体颜色

[root@server02 ~]# echo -e "\033[1;$[RANDOM%7+31]liujunjun\033[0m"
iujunjun

增强型赋值:

+= i+=10 相当于 i=i+10
-= i-=j 相当于 i=i-j
*=
/=
%=
++ i++,++i 相当于 i=i+1
-- i--,--i 相当于 i=i-1

格式:

let varOPERvalue

范例:
#自加3后自赋值

let count+=3
[root@server02 ~]# i=10
[root@server02 ~]# let i+=20
[root@server02 ~]# echo $i
30
[root@server02 ~]# j=20
[root@server02 ~]# let i*=j
[root@server02 ~]# echo $i
600

范例:
#自增,自减

let var+=1
let var++
let var-=1
let var--
[root@server02 ~]# unset i j ; i=1; let j=i++; echo "i=$i,j=$j"
i=2,j=1
[root@server02 ~]# unset i j ; i=1; let j=++i; echo "i=$i,j=$j"
i=2,j=2

逻辑运算

true, false
1, 0
与:&
1 与 1 = 1
1 与 0 = 0
0 与 1 = 0
0 与 0 = 0
或:|
1 或 1 = 1
1 或 0 = 1
0 或 1 = 1
0 或 0 = 0
非:!
! 1 = 0 ! true
! 0 = 1 ! false
异或:^
异或的两个值,相同为假,不同为真
[root@server02 ~]# true
[root@server02 ~]# echo $?
0
[root@server02 ~]# false
[root@server02 ~]# echo $?
1
[root@server02 ~]# ! true
[root@server02 ~]# echo $?
1
[root@server02 ~]# ! false
[root@server02 ~]# echo $?
0
[root@server02 ~]# x=10;y=20;temp=$x;x=$y;y=$temp;echo x=$x,y=$y
x=20,y=10
[root@server02 ~]# x=10;y=20;x=$[x^y];y=$[x^y];x=$[x^y];echo x=$x,y=$y
x=20,y=10

短路运算

短路与
CMD1 短路与 CMD2
第一个CMD1结果为 0 (),总的结果必定为0,因此不需要执行CMD2
第一个CMD1结果为 1 (),第二个CMD2必须要参与运算,才能得到最终的结果
短路或
CMD1 短路或 CMD2
第一个CMD1结果为1 (),总的结果必定为1,因此不需要执行CMD2
第一个CMD1结果为0 (),第二个CMD2 必须要参与运算,,才能得到最终的结果
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值