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 让判断补完&&和||,加入:是一个不执行任何的代码。 不知道其他人是否也发现这个问题。

尚美源码坑位教程提供精美的网站源码教程,小程序、公众号、H5、APP、游戏、直播、支付、区块链、商城、影音、小说等源码信息大全。
尚美源码教程库 » bash的[ ] && {} || {}的bug
赞助VIP 享更多特权,立即登录下载海量资源
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡