shell基础(5)算数计算:运算语法、自增自减

文章介绍了Shell中算数运算的特点,包括其不直接支持浮点数运算,主要使用$((算数表达式)))和let命令进行整数运算。此外,还讲解了如何利用bc工具处理小数运算,以及自增自减操作的区别,如前置自增和后置自增的行为差异。

1. shell算数运算的特点

  • Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令。
  • Shell只支持整数运算,也就是所有可能产生小数的运算都会舍去小数部分。

因为shell默认都是字符串(拼接)操作,如下例子:

lianggao@LiangdeMacBook-Pro ~ % var=1+1
lianggao@LiangdeMacBook-Pro ~ % echo $var
1+1

 
 

2. 运算符一览

在这里插入图片描述

除法求余运算中除数不能为0.

举个例子

lianggao@LiangdeMacBook-Pro ~ % var10=$((10>>2))
lianggao@LiangdeMacBook-Pro ~ % echo $var10
2

 
 

3. 运算语法

3.1 整形运算

算数拓展(推荐)
语法:$((算数表达式))

[root@tbds-10-1-0-38 log]# i=1 
#运算输出
[root@tbds-10-1-0-38 log]# echo $((i+1)) 
2


#赋值 
[root@tbds-10-1-0-38 log]# var15=$((12+i)) 
[root@tbds-10-1-0-38 log]# echo $var15 
13


#未定义的变量运算(变量默认为0[root@tbds-10-1-0-38 log]# echo $((j+1)) 
3 
[root@tbds-10-1-0-38 log]# echo $((y+1)) 
1 

 
let命令:

lianggao@LiangdeMacBook-Pro ~ % let "var10=1+1"
lianggao@LiangdeMacBook-Pro ~ % echo $var10
2

 

3.2. 小数运算 ing

Shell 本身只支持整数运算,想计算小数就得使用 bc 这个外部的计算器。

 
 

4. 自增自减

4.1. a++与++a

前置自增:先自增在赋值
后置自增:先赋值再自增
操作对象只能是变量,不能是常数

[root@tbds-10-1-0-38 log]# var11=1
[root@tbds-10-1-0-38 log]# let "var12=var11++"
[root@tbds-10-1-0-38 log]# echo $var12
1
[root@tbds-10-1-0-38 log]# var13=1
[root@tbds-10-1-0-38 log]# let "var14=++var13"
[root@tbds-10-1-0-38 log]# echo $var14
2

 

4.2. 自加

#第一种方式
lianggao@LiangdeMacBook-Pro ~ % a=4
lianggao@LiangdeMacBook-Pro ~ % a=$(($a+3))
lianggao@LiangdeMacBook-Pro ~ % echo $a
7

#第二种方式
lianggao@LiangdeMacBook-Pro ~ % a=4        
lianggao@LiangdeMacBook-Pro ~ % let "a+=3"
lianggao@LiangdeMacBook-Pro ~ % echo $a
7
Shell中,实现变量自有多种方法,以下为几种常见的方式: ### 使用`let`命令 `let`命令用于执行算术运算,可实现变量的自和自。 ```bash #!/bin/bash # 初始化变量 num=10 # 自操作 let num=num+1 echo $num # 输出11 # 自操作 let num=num-1 echo $num # 输出10 ``` 在上述代码中,`let num=num+1` 实现了变量 `num` 的自,`let num=num-1` 实现了变量 `num` 的自。 ### 使用`(( ))`算术扩展 `(( ))` 是一种算术扩展机制,同样可以进行变量的自和自操作。 ```bash #!/bin/bash # 初始化变量 num=20 # 自操作 ((num++)) echo $num # 输出21 # 自操作 ((num--)) echo $num # 输出20 ``` 这里 `((num++))` 是自操作,`((num--))` 是自操作。 ### 使用`expr`命令 `expr` 命令也能用于执行算术运算,不过它的使用相对复杂一些,需要注意运算符前后要有空格。 ```bash #!/bin/bash # 初始化变量 num=30 # 自操作 num=$(expr $num + 1) echo $num # 输出31 # 自操作 num=$(expr $num - 1) echo $num # 输出30 ``` 在这个例子中,`expr $num + 1` 实现自,`expr $num - 1` 实现自,并且使用 `$()` 来获取命令的执行结果并赋值给变量。 ### 使用`bc`命令(用于浮点运算) 如果需要进行浮点运算的自,可以使用 `bc` 命令。 ```bash #!/bin/bash # 初始化变量 num=1.5 # 自操作 num=$(echo "$num + 0.1" | bc) echo $num # 输出1.6 # 自操作 num=$(echo "$num - 0.1" | bc) echo $num # 输出1.5 ``` 这里通过 `echo "$num + 0.1" | bc` 实现浮点变量的自,`echo "$num - 0.1" | bc` 实现浮点变量的自
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

roman_日积跬步-终至千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值