shell编程中的逻辑运算,有或且非、短路运算,异或运算,我们用最简单的方式理解一下异或。
异或:^
异或的两个值,相同为假,不同为真
理解起来,两个值是指二进制的值,出现两个1或者两个0结果为假[0],出现两个不一样的值结果为[1]。
例如:
十进制 | 二进制 |
---|---|
10 | 01010 |
22 | 10110 |
异或结果 28 | 11100 |
那异或在shell编程中如何体现价值呢?下面的实验可以用在临时变量里面。
#利用临时变量将a b进行互换值
[[email protected] ~]#a=6
[[email protected] ~]#b=8
[[email protected] ~]#tmp=$a
[[email protected] ~]#a=$b
[[email protected] ~]#b=$tmp
[[email protected] ~]#echo $a $b
8 6
[[email protected] ~]#b=8
[[email protected] ~]#a=6
[[email protected] ~]#a=$[a^b]
#此时的a^b按照二进制运算,则结果为如下计算结果
0110 6
1000 8
1110 14
[[email protected] ~]#echo $a $b
14 8
[[email protected] ~]#b=$[a^b]
#此时的a^b按照二进制运算,则结果为如下计算结果
1110 14
1000 8
0110 6
[[email protected] ~]#echo $a $b
14 6
[[email protected] ~]#a=$[a^b]
#此时的a^b按照二进制运算,则结果为如下计算结果
1110 14
0110 6
1000 8
[[email protected] ~]#echo $a $b
8 6
原文地址:http://blog.51cto.com/13655621/2088349
时间: 2024-11-12 15:30:47