Shell—— 7.数学运算

使用let、(())、 ( ( ) ) 或 (())或 (())[]进行基本的整数运算,使用bc进行高级的运算,包括小数运算。其中expr命令也能进行整数运算,还能判断参数是否为整数,具体用法见expr命令全解。
其中let和(())几乎完全等价,除了做数学运算,还支持数学表达式判断,例如数值变量a是否等于3:let a3或((a3)),但一般不会使用它们来判断,而是使用test命令结合条件表达式:test “$a” -eq 3。

1.整数运算
1.1 let
[root@master ]# str=10
[root@master ]# let str=str+6  # 等价于let str+=6
[root@master ]# let str-=5     # 等价于let str=str-5
[root@master ]# echo $str
11
1.2 使用$(())或$[ ]
[root@xuexi ~]# str=10
[root@xuexi ~]# echo $((str+=6))
16
[root@xuexi ~]# echo $[str=str-6]
10

在为变量赋算术值的时候也可以使用 ( ( ) ) 和 (())和 (())[]。

[root@xuexi ~]# str=10
[root@xuexi ~]# str=$((str+=6));echo $str
16
[root@xuexi ~]# str=$[str-=6];echo $str
10

在算数计算过程中,等号右边的变量是可以带上$符号的,但等号左边的变量不允许带上$符号,因为它是要操作的变量,不是引用变量

[root@xuexi ~]# let str=$str-1         # 等价于let str=str-1
[root@xuexi ~]# str=$(($str-1))        # 等价于str=$((str-1))
[root@xuexi ~]# srt=$[$str-1]          # 等价于str=$[str-1]
[root@xuexi ~]# echo $((str=$str-1))   # 等价于echo $((str=str-1)),但不能写成echo $(($str=str-1))
[root@xuexi ~]# echo $[str=$str-1]     # 等价于echo $[str=str-1],但不能写成echo $[$str=str-1]
1.3 自增、自减

"++“和”–"表示变量自动加1和减1。但是位置不同,返回的结果是不同的。

[root@xuexi ~]# x=10;echo $((x++));echo $x
10
11
[root@xuexi ~]# echo $((x++));echo $x
11
12
let i=i-1
let i=$i-1
let i-=1
i=$((i-1))
i=$(($i-1))
i=$[ i - 1 ]
i=$[ $i - 1 ]
echo $((i=i-1))
echo $((i=$i-1))
let arr_test[a]=${arr_test[0]} - 1
let arr_test[a]-=1
echo $((arr_test[a]++))
echo $[ arr_test[a]++ ]

————Blueicex 2020/03/07 21:30 blueice1980@126.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值