Linux系统shell程序设计(十)-运算符(理论+实战)

一、算术运算符

1.1 基本运算符

运算符

说明

+

加法

-

减法

*

乘法

/

除法

%

取余

**

幂次

  • 算术运算符主要是加、减、乘、除、余、幂等常见的算术远算。
  • Shell只支持整数运算,小数部分会舍去。除法运算,除数不能为0。
  • 一般情况下,算术运行需要let命令或expr命令一起使用。

1.2. let用法介绍

let 命令是bash中用于计算的工具,用于执行一个或多个表达式。

变量计算中不需要加上$来表示变量。如果表达式中包含了空格或其它特殊字符,则必须引起来。

  • 语法格式:
let <表达式>

用法一:

# let x=1+1
# echo $x

 

用法二:

# let "x = 1 + 1"
# echo $x

 用法三:

# x=2
# let "x=x+1"
# echo $x

 1.3. 算术运算符 – expr用法介绍

expr 命令是一个手工命令行计数器,用于在UNIX/Linux下求表达式变量的值,一般用于整数值,也可以用于字符串。

语法格式:

expr <表达式>

表达式说明:
用空格隔开每个项;
用反斜杠\放在shell特定的字符前面;
对包含空格和其它特殊字符的字符串要用引号括起来。

注意:使用乘号*时,必须用反斜线转义其特定含义。

1.4. 算术运算符 基本运算符示例

加、减、乘、除,取余、幂次运算符示例如下: 

注意:对幂次方运算,expr不支持。可以通过man expr进行查询,但是let支持幂次方的运算。 

 1.5. 算术运算符 复合运算符

运算符

说明

+=

加等

-=

减等

*=

乘等

/=

除等

%=

余等

  • 算术复合运算符主要是加等、减等、乘等、除等、余等复合运算。
  • Shell只支持整数运算,小数部分会舍去。除法运算,除数不能为0。
  • 一般情况下,算术运行需要let命令一起使用。

1.6 算术运算符 复合运算符示例

加等、减等、乘等、除等,余等运算符示例如下:

1.7 算术运算符 算术扩展

算术扩展是shell提供的整数变量的运算机制,是shell的内建命令之一。其基本语法如下:

$((算术表达式))

 

 二、位运算符

2.1 左移、右移

运算符

说明

<<

左移

>>

右移

  • 位运算符是基于内存中二进制数据的运算,也就是基于位的运算。常见的位运算有左移、右移、按位与、按位或、按位异或、按位非等运算。
  • 位运算的左移、右移元素其实就是整数在内存中的“左右移动”。

左移举例说明:

 右移举例说明:

2.2 按位与、按位或

运算符

说明

&

按位与,是将两个整数写成二进制的形式,然后同位置相比较,只有当对应的二进制值都为1时,结果才为1

|

按位或,是将两个整数写成二进制的形式,然后同位置相比较,只要对应的位置有1,结果就为1

按位与举例说明:

按位或举例说明

2.3 按位非、按位异或

运算符

说明

~

按位非,是将一个数字的二进制数字取反所得到的结果,计算有点麻烦,有个快捷的计算公式:~a的值为-(a+1)

^

按位异或,是将两个整数写成二进制的形式,然后同位置相比较,只要对应的位置同为0或同为1,结果就为0,否则为1

按位非举例说明:

 按位异或举例说明:

三、自增、自减运算符

运算符

对变量i的操作

说明

++

++i

前置自增

--i

前置自减

--

i++

后置自增

i--

后置自减

  • 前置自增或前置自减,会首先修改变量的值,然后再将变量的值传递出去。
  • 后置自增或后置自减,会首先将变量的值传递出去,然后再修改变量的值。
  • 自增、自减符,操作对象只能是变量,不能是常量或表达式。

自增举例说明:

 

自减举例说明:

 

四、数字常量进制

一个前缀为0的数字是八进制;一个前缀为0x的数字是十六进制数。一个数用内嵌的#来求值,则看成BASE#NUMBER(2-64)NUMBER必须使用在BASE范围内的符号。

备注:除非一个数字有特别的前缀或符号,否则shell脚本把它当成十进制的数。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

技术瘾君子1573

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

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

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

打赏作者

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

抵扣说明:

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

余额充值