Chinaunix

标题: -o 和 && 区别? [打印本页]

作者: topswim    时间: 2010-11-18 10:32
标题: -o 和 && 区别?
if ["$an"=Y -o "$an"=y]

if ["$an"=Y && "$an"=y]

有什么区别?
为什么用&&会报错啊!?!
作者: alfred1980    时间: 2010-11-18 10:39
什么环境?
什么语言?
作者: topswim    时间: 2010-11-18 10:44
AIX KSH shell
作者: alfred1980    时间: 2010-11-18 10:46
报什么错误啊?
作者: zzy7186    时间: 2010-11-18 10:48
if [] && [] 与 if[ exp -o exp ] 与 if [[ exp && exp ]]相同
高级shell.pdf 中有说
作者: L_kernel    时间: 2010-11-18 10:55
if ["$an"=Y -o "$an"=y]

if ["$an"=Y && "$an"=y]
这两个判断条件我都表示看不懂。 -o表示或的意思。而&&是命令执行的判断。
因该是这样子吧?
if [ "$an"=="Y" -o "$an"=="y" ]
作者: jiaminqiang    时间: 2010-11-18 11:09
[]和[[]] 是不同的  && 可以在[[]]中 不能用在 []中
作者: topswim    时间: 2010-11-18 11:20
if ["$an"=Y -o "$an"=y]

if ["$an"=Y && "$an"=y]
这两个判断条件我都表示看不懂。 -o表示或的意思。 ...
L_kernel 发表于 2010-11-18 10:55



   

出自UNIX.shell范例精解(第4版)
作者: jason680    时间: 2010-11-18 11:42
本帖最后由 jason680 于 2010-11-18 11:47 编辑
if ["$an"=Y -o "$an"=y]

if ["$an"=Y && "$an"=y]

有什么区别?
为什么用&&会报错啊!?!
topswim 发表于 2010-11-18 10:32



if [ "$an" = Y -o "$an" = y ]
if [ "$an" = Y ] || [ "$an" = y ]


if [ "$an" = Y -a "$an" = y ]
if [ "$an" = Y ] && [ "$an" = y ]

Note: don't forget the space between [ and ]
作者: ooooldman    时间: 2010-11-18 12:15
-o 是或,&&是与
作者: wtuter    时间: 2010-11-18 12:40
回复 1# topswim


    唉,真是的,像黑哥说的,像这个,一个如此的shell基础还引来一群错误的答案,看看置顶的文革妹妹怎么说的吧
作者: topswim    时间: 2010-11-21 20:40
黑哥是谁啊?文革妹妹又是谁?
作者: cjaizss    时间: 2010-11-21 20:47
-o是test命令里的参数,没上升到shell语言的高度;
&&是shell里面的操作符
作者: kelehaier    时间: 2010-11-21 21:12
if ["$an"=Y -a "$an"=y]
作者: wtuter    时间: 2010-11-22 10:28
回复 14# kelehaier


   这个可以?你确定两边没有空格?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2