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源码、商城源码教程以及公众号模块教程,大部分是会员免费,网站长期受到各站长的收藏及浏览。
用户必须遵守《计算机软件保护条例(2013修订)》第十七条:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。鉴于此条例,用户从本平台下载的全部源码(软件)教程仅限学习研究,未经版权归属者授权不得商用,若因商用引起的版权纠纷,一切责任均由使用者自行承担,本平台所属公司及其雇员不承担任何法律责任。
锦绣源码库 » bash的[ ] && {} || {}的bug
赞助VIP 享更多特权,立即登录下载海量资源
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡