bash的[ ] && {} || {}的bug

写了一个bash的shell,得出意外的结果,可能是bash的bug吧! 这个问题在版本4.4.12(3)-release被证实,之前的版本4.1也有,可能低于这个版本的都有这个问题。 看例子: [ 1 -eq 1 ] && { [ 2 -eq 1 ] && echo yes ; } || echo no 结果应该是什么都没有输出才对,但是输出是no [ 1 -eq 2 ] && { [ 2 -eq 1 ] && echo yes ; } || echo no 这个结果才应该是输出no,应该是[ 2 -eq 1 ]误认为|| echo no也属于它的控制语句,但是有{}啊,没起作用? 为了避免出现意想不到的结果,只能修改为  [ 1 -eq 1 ] && { [ 2 -eq 1 ] && echo yes || : ; } || echo no 让判断补完&&和||,加入:是一个不执行任何的代码。 不知道其他人是否也发现这个问题。

提供优质的网站源码大全,小程序、APP、H5、支付、游戏、区块链、商城、直播、影音、小说、公众号等源码下载。
易搜网络技术公司 » bash的[ ] && {} || {}的bug
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡