真真假假--shell里的逻辑运算

最近群里经常讨论到shell里的与(&&)运算与或(运算)

 

这边也做下简单的总结

1:shell在逻辑运算下,跟其他语言一样支持与或非的逻辑运算(man test,或 在man bash里查的ARITHMETIC EVALUATION一节)

2:shell直接模工下,一般是以0为真,1为假,即根据函数(return)或脚本(exit)来判断真假。

3:bash里的&& 和|| 不像c里的优先级。在bash里,&& 与||是具有相同优先级的 ,而c里,&&优先(没记错的话)

4:awk继承了c的语法,以&&优先于||,并且以1为真,0为假

 

例子:

[root@localhost tmp]# r0(){ echo 0.$$; return 0;}
[root@localhost tmp]# r1(){ echo 1.$$; return 1;} 
[root@localhost tmp]# r0 || r1
0.4572
[root@localhost tmp]# r1 || r0
1.4572
0.4572
[root@localhost tmp]# r0 && r1 
0.4572
1.4572
[root@localhost tmp]# r1 && r0
1.4572
[root@localhost tmp]# r1 && r0 || r0

1.4572
0.4572

[root@localhost tmp]# r1 || r0 &&  r1    
1.4572
0.4572
1.4572

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值