- 论坛徽章:
- 0
|
学习:"10) && 與 || 差在哪?"的疑问
$ unset A
$ [ -n "$A" ] && [ "$A" -lt 100 ] || echo 'too big!'
我是初学者,个人理解:
因为A为null,所以[ -n "$A" ] 判断为假,然后"&&"之后的[ "$A" -lt 100 ] 就不执行了,直接到"||"执行echo 'too big!' 了!
不知对不???
但是原文中的:
引用:
為何上面的結果也可得到呢?
又,如何解決之呢?
(提示:修改方法很多,其中一種方法可利用第七章介紹過的 command group ...)
"如何解決之呢?"这句话是什么意思???
请问:解决什么???
[ -n "$A" ] && [ "$A" -lt 100 ] || echo 'too big!'
当无值时是echo 'too big!' ,可是当有值大于100时,也会执行 echo 'too big'
贴子已经说了啊,解决办法就是command group
看shell的意思是先判断变量是否有值,如果有值,再判断是否小于100,如果大于100,就显示 too big
- [ -n "$A" ] && { [ "$A" -lt 100 ] && echo 'too small' || echo 'too big' ; } || echo null
复制代码
就是成组命令 { cmd ; cmd ; } |
|