免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chep
打印 上一主题 下一主题

if条件语句中ls core和ls core>dev/null有何不同 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2009-09-15 23:53 |只看该作者
原帖由 beginner-bj 于 2009-9-15 23:48 发表
SMS:~> ls core* >/dev/null 2>&1的输出永远都是NULL,不是成功啊

呵呵,哥们,能不能解释一下if ` ls core* >/dev/null 2>&1`的情况下
有core文件了,就返回真
没core文件,就返回假不?
我的一个疑惑是,标准输出和错误不丢掉了莫?恕在下初学,呵呵

论坛徽章:
0
22 [报告]
发表于 2009-09-15 23:55 |只看该作者

回复 #19 beginner-bj 的帖子

不是,是检查有无core文件,但是发现用
if `ls core* > /dev/null 2>&1`可以判断有无core文件,觉得有些诡异.所以想弄清楚写,呵呵

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
23 [报告]
发表于 2009-09-15 23:58 |只看该作者
ls core* >/dev/null 2>&1 的标准输出是空
echo '' 的标准输出也是空
echo '真' 的标准输出才是'真'
echo '真真' 的标准输出是'真真'
echo '真真' 的标准输出是'真真'

就是个字符串,不是返回值。明白?

论坛徽章:
0
24 [报告]
发表于 2009-09-15 23:59 |只看该作者

回复 #20 chep 的帖子

1首先你要知道`` 是什么意思 吧命令的标准输出拿过来替换成字串;
2你要知道if 靠什么来判断 他考进跟在 if 后面的表达式的真假来判断
3你要知道什么是 真什么是假;   表达式的真就是0 假 非0; 如果表达式不是数字 就当命令来执行 看他的返回值;
你认真看了吗

论坛徽章:
0
25 [报告]
发表于 2009-09-16 00:02 |只看该作者
你认真看完之后 你的所有问题 用这3条都解决了

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
26 [报告]
发表于 2009-09-16 00:07 |只看该作者
楼主是把命令的标准输出和命令的返回值两个概念搞混了。

论坛徽章:
0
27 [报告]
发表于 2009-09-16 00:11 |只看该作者

回复 #25 beginner-bj 的帖子

呵呵,谢谢两位!
最开始是搞混标准输出和返回值了,但后来就是奇怪
if `ls core* > /dev/null 2>&1` 觉得这个标准输出始终为空,有core无core都为空了,
呵呵

论坛徽章:
0
28 [报告]
发表于 2009-09-16 08:30 |只看该作者
我在上面早就告诉你了,强制。

论坛徽章:
0
29 [报告]
发表于 2009-09-16 09:42 |只看该作者
看23楼+28楼明白一切

论坛徽章:
0
30 [报告]
发表于 2009-09-16 09:43 |只看该作者
让我想起来这个问题:
经过管道处理的命令,$?是返回谁的执行结果?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP