字符、运算、逻辑运算

本文介绍了Shell脚本中的算术运算与逻辑运算方法,包括使用let、$[]及$(( ))进行算术运算的不同方式,以及expr命令的用法。此外还详细解释了Shell中的逻辑运算符如与、或、非、异或等,并提供了多个示例说明如何在Shell脚本中正确应用这些运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符

数值

        整型

        浮点型:

11.23, 1.123*10^1, 0.1123*10^2

                2013/10/10, 64bit

99999: 24bit,

        布尔型

:真、假

逻辑:1+1>2

shell算术运算:

Shell默认不作算数运算

例如:

[root@localhost ~]# A=5

[root@localhost ~]# B=6

[root@localhost ~]# C=$A+$B

[root@localhost ~]# echo $C

5+6

如果要做:

1、let 算术运算表达式

let C=$A+$B

例如:

[root@localhost ~]# A=5

[root@localhost ~]# B=6

[root@localhost ~]# let C=$A+$B

[root@localhost ~]# echo $C

11

例如:

let I=$[$I+1]相当于let I+=1

SUM=$[$SUM+$I]相当于 let SUM+=$I

a=$[$a+1] 相当于 let a+=1

let I+=1 相当于 let I++

-=:let I-=1 相当于 let I–

++I, –I

*=

/=

%=

2、$[算术运算表达式]

C=$[$A+$B]

例如:

[root@localhost ~]# A=5

[root@localhost ~]# B=6

[root@localhost ~]# C=$[$A+$B]

[root@localhost ~]# echo $C

11

3、$((算术运算表达式))

C=$(($A+$B))

例如:

[root@localhost ~]# A=5

[root@localhost ~]# B=6

[root@localhost ~]# C=$(($A+$B))

[root@localhost ~]# echo $C

11

4、expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用

C=`expr $A + $B`

例如:

[root@localhost ~]# A=5

[root@localhost ~]# B=6

[root@localhost ~]# C=`expr $A + $B`

[root@localhost ~]# echo $C

11

    注意:中间空格

[root@localhost ~]# C=`expr $A+$B`

[root@localhost ~]# echo $C

5+6

例如:

[root@linux ~]# C=`expr $A + $B`

[root@linux ~]# C=`expr $A – $B`

[root@linux ~]# C=`expr $A \* $B`

[root@linux ~]# C=`expr $A \/ $B`

逻辑运算:

与、或、非、异或

1: 真

0: 假

与:

1 & 0 = 0

0 & 1 = 0

0 & 0 = 0

1 & 1 = 1

或:

1 | 1 = 1

1 | 0 = 1

0 | 1 = 1

0 | 0 = 0

非:

! 真 = 假

! 假 = 真

异或:

操作数相同为真,不同为假。

shell: 弱类型编程语言

强:变量在使用前,必须事先声明,甚至还需要初始化;

弱:变量用时声明,甚至不区分类型;

变量赋值:VAR_NAME=VALUE

命令的间逻辑关系:

逻辑与: &&

第一个条件为假时,第二条件不用再判断,最终结果已经有;

第一个条件为真时,第二条件必须得判断;

逻辑或: ||

第一个条件为真时,第二个条件不用判断,最终结果已经为真了;

第一个条件为假时,第二个条件必须得判断;

例如:

[root@localhost ~]# A=5

[root@localhost ~]# B=6

[root@localhost ~]# [ “$A” == “$B” ] && echo “00000000”; :

[root@localhost ~]# [ “$A” == “$B” ] && echo “00000000”

[root@localhost ~]# [ “$A” == “$B” ] || echo “00000000”

00000000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值