【知识梳理】Shell的变量计算

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。


Shell中有很多变量的计算,会用到多种运算符。例如这几种:

1. Shell中常见的算术运算符

运算符意义(*表示常用)
+、-加法(或正号)、减法(或负号)
*、/、%* 乘法、除法、取余(取模)
**幂运算
++、--* 增加及减少,可前置也可放在变量结尾
!、&&、||* 逻辑非(取反)、逻辑与(and)、逻辑或(or)
<、<=、>、>=比较符号(小于、小于等于、大于、大于等于)
==、!=、=* 比较符号(相等、不相等、对于字符串“=”也可以表示相当于)
<<、>>向左移位、向右移位
~、|、&、^按位取反、按位异或、按位与、按位或
=、+=、-=、*=、/=、%=* 赋值运算符、例如a+=1相当于a=a+1,a-=1相当于a=a-1

2. shell中常见的算术运算命令

运算操作符与运算命令意义
(())用于整数运算的常用运算符,效率很高
let用于整数运算,类似于"(())"
expr可用于整数运算,但还有很多其它的额外功能,相关文章见《【温故知新】expr的用法回顾
bcLinux下的一个计算器程序(适合整数及小数运算)
$[]用于整数运算
awkawk既可以用于整数运算,也可以用于小数运算
declare定义变量值和属性,-i参数可以用于定义整形变量,做运算

3. 使用例子

1)(())的运算

[root@test101 ~]# echo $((1+5))
6
[root@test101 ~]# 
[root@test101 ~]# a=$((1+2**3-4%3))
[root@test101 ~]# echo $a
8
[root@test101 ~]#

2)let运算

let运算命令的语法:let赋值表达式

let赋值表达式的功能等同于“((赋值表达式))”

例子:

[root@test101 ~]# a=3
[root@test101 ~]# let a=a+7
[root@test101 ~]# echo $a
10
[root@test101 ~]#

3)bc运算

[root@test101 ~]# echo 10+5|bc  #例1
15
[root@test101 ~]# 
[root@test101 ~]# a=5  #例2
[root@test101 ~]# a=`echo $a+6|bc`
[root@test101 ~]# echo $a
11
[root@test101 ~]# 

4)$[]符号的运算

[root@test101 ~]# a=11  #例1
[root@test101 ~]# a=$[a+22]
[root@test101 ~]# echo $a
33
[root@test101 ~]# 
[root@test101 ~]# echo $[5*8]  #例2
40
[root@test101 ~]# 

5)awk运算

[root@test101 ~]# echo "3 5"|awk '{print ($1+3)*$2}'
30   #$1表示第一个数字3,$2表示第二个数字9,中间用空格隔开,算式就变成了计算(3+3)*5=30
[root@test101 ~]# 

6)declare运算(少用)

[root@test101 ~]# declare -i a=66 b=33 #-i参数用于将变量定义为整型
[root@test101 ~]# a=a+b  #因为已经声明为整型,因此就可以直接进行运算了
[root@test101 ~]# echo $a
99
[root@test101 ~]# 

理论知识出处:《跟老男孩学linux运维》,版权属于原作者

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值