当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-15 23:59 

注册: 2008-09-10 21:06
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
代码:
test 3 -gt 4 && echo True || echo false


请问:这里的||代表什么含义?
这个操作符在Linux下有几种含义?我现在只知道有个逻辑或的含义。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-16 1:42 
头像

注册: 2007-09-29 3:09
帖子: 5773
送出感谢: 0 次
接收感谢: 3
&&表示前一个执行返回成功后执行
||表示前面那个返回“失败/没有”后执行...
大概是这么个意思...
具体到例子里,如果最前面的那个测试返回真,那么&&后面的就执行,执行成功了,就不执行||后面的...
如果前面的测试返回假,那么&&后面就没被执行,于是||后面的就执行了...
发现我讲得逻辑混乱...
不知道abs里是不是有,建议看看《Beginning Linux Programming》第二章的介绍...


_________________
HUNT Unfortunately No Talent...


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-16 8:51 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
经常这样用于测试的
xxxx && echo ok || echo error


_________________
● 鸣学


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-16 10:30 

注册: 2007-07-14 22:39
帖子: 229
送出感谢: 0 次
接收感谢: 0 次
abs里面当然有了。
很多语言都是这样吧,编译器或者解释器处理这种逻辑的时候都是这样。
比如或,前面为真,则结果为真,就不会执行后面的了。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-16 10:57 
头像

注册: 2008-03-19 14:20
帖子: 130
地址: 广西柳州
送出感谢: 1
接收感谢: 0 次
勉强看明白了,学习了


_________________
主板:ASUS P8Z77-V
CPU:Intel 酷睿i3 3200
内存:ADTA DDRⅢ 1600 8G
显卡:Intel® HD Graphic
声卡:Realtek ALC 892
有线网卡:Intel® 82579V
无线网卡:Qualcomm Atheros AR9485
硬盘:WDC WD6401AALS
电源:长城ATX-350SD静音大师
显示器:Samsung S24A350H


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-16 12:10 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
我觉得是这个意思:

cmd1 || cmd2 || cmd3 || ... 从 cmd1 开始执行,遇到第一个返回值为 0 的命令之后,跳过所有连续的 || 判断,执行后面的命令,如:
代码:
$ asdf || echo 2 || echo 3 || echo 4 && echo ok
bash: asdf: command not found
2
ok
   


cmd1 && cmd2 && cmd3 && ... 从 cmd1 开始执行,遇到第一个返回值不为 0 的命令之后,跳过所有连续的 && 判断,执行后面的命令,如:
代码:
$ echo 1 && echo 2 && echo 3 && asdf || echo yes && echo YES
1
2
3
bash: asdf: command not found
yes
YES
   


两个逻辑判断可以混用,原则应该不变。不知道说得对不对~ :em09


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-16 14:35 
头像

注册: 2005-12-28 1:16
帖子: 3916
地址: 火星
系统: Ubuntu 12.10 X64
送出感谢: 1
接收感谢: 0 次
短路表达式


_________________
目前负债150多万


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-16 14:41 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
。。。。。。。。。。你强。你研究。 :em04


_________________
● 鸣学


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-16 15:28 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
我看阿姨有点短路了。再来一个,既然是逻辑判断,and 和 or 都有了,再加个 not 也没问题:

代码:
$ echo a || echo b || echo c && echo ok
a
ok

$ ! echo a || echo b || echo c && echo ok
a
b
ok


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 请教逻辑操作符"||"的问题
帖子发表于 : 2008-12-16 15:43 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
我不短路。是别人说的。
我不会使用有歧义的表达式的。编程带来的习惯。


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译