免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1678 | 回复: 1
打印 上一主题 下一主题

[网络管理] bash 的逻辑与和逻辑或的问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-14 23:16 |只看该作者 |倒序浏览
本帖最后由 webjin 于 2013-07-14 23:42 编辑

# cat test.txt 2> test.txt && echo "成功"
成功

# cat test.txt 2> no.txt && echo "成功"

================
前面2次执行的结果都不同,前提是 执行命令前 没有test.txt 文件  
第一天我不太明白,
第一 cat 的时候 没有 test.txt文件只是 然后错误输出重定向的时候创建了 与他同名的文件,然后执行了&& 后面的那个命令
按照官方的说法是,&& 签名的命令成功执行 才会执行下面那条命令
然后我 再去cat test.txt 按道理里面的内容应该是 错误输出信息 cat: test.txt: No such file or directory
但是他并没有内容在里面。难道是 cat 之前 就2> test.txt创建 但是如果是这样的逻辑,我无语了 命令不是从左边往右边执行,除非是
碰到`命令`  这样才先执行后边的``的命令
=============
第二天执行的结果按照我的思维是这样的,
因为我 然后再次查看no.txt文件的时候里面有内容  cat: test.txt: No such file or directory
所以&&后面当然不执行了,因为前面的命令是错误的,也就是说返回了非“0”值
=====================
反之把&&换成|| 执行的结果刚好又相反


求解还是

论坛徽章:
0
2 [报告]
发表于 2013-07-16 12:53 |只看该作者
哎,论坛人气越来越没了,我自己顶了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP