LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 713|回复: 3

关于|| && ,怎么老是true?

[复制链接]
发表于 2003-10-8 13:28:13 | 显示全部楼层 |阅读模式
# cat t
#!/usr/local/bin/bash
a=0
b=5
c=8
if [[ $a || $b || $c ]];then
#if [[ $a && $b && $c ]];then
echo "ok"
else
echo "undo"
fi

#
把三个值改了多次了。用&&时也改了多次。怎么都打印ok?
请教........
发表于 2003-10-8 14:02:35 | 显示全部楼层
man bash 中有说明,在 [[ ]] 中,&& 表示与关系,他用于连接条件表达式。你查 man bash 中 CONDITIONAL EXPRESSIONS 一节就可以看到:
string - True if the length of string is non-zero.
就是说,如果表达式中没有任何操作符,只是一个字符串的话,返回的是该字符串是否长度为零。所以如果把你的文件改为
if [[ $a != 0 || $b != 0 || $c != 0 ]];then
可能才是你的本意吧。
 楼主| 发表于 2003-10-8 19:21:30 | 显示全部楼层
谢谢。我疑惑了好久了。但我E文较差,就没看man
发表于 2003-10-9 14:21:13 | 显示全部楼层
最初由 idkey 发表
man bash 中有说明,在 [[ ]] 中,&& 表示与关系,他用于连接条件表达式。你查 man bash 中 CONDITIONAL EXPRESSIONS 一节就可以看到:
string - True if the length of string is non-zero.
就是说,如果表达式中没有任何操作符,只是一个字符串的话,返回的是该字符串是否长度为零。所以如果把你的文件改为
if [[ $a != 0 || $b != 0 || $c != 0 ]];then
可能才是你的本意吧。

yeah~~~,idkey兄的解释是很权威的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表