
1 013231 2013-07-28 01:50:00 +08:00 你的理解是的. 重定向只是定出到什地方, 不把失的命令成成功的. 在例子中, 重定向不影返回值. |
2 0racleTink 2013-07-28 01:57:03 +08:00 via iPad 能通就是1反之就是0 |
3 sdzbzyc OP @013231 感谢回复 是不是可以这样理解,ping -c 1 -w 1 ${network}.${sitenu} &> /dell/null 是0还是1取决于能不能ping通,而与&> /dell/null重定向没有关系。 |
5 xdays 2013-07-28 10:32:18 +08:00 动手验证下呗 echo -e "aa\nbb" > /tmp/foo.txt; grep cc /tmp/foo.txt >/dev/null && echo 0 || echo 1; grep aa /tmp/foo.txt>/dev/null && echo 0 || echo 1 |
6 013231 2013-07-28 10:36:15 +08:00 @sdzbzyc 是的. `echo $?`可以看到上一命令的返回值, 你就知道了. axios@gentoo ~ $ ping notExist ping: unknown host notExist axios@gentoo ~ $ echo $? 2 axios@gentoo ~ $ ping notExist &> /dev/null axios@gentoo ~ $ echo $? 2 由此可,然第二次ping通重定向把信息影藏起了, 但不影像返回值. |
7 013231 2013-07-28 10:42:34 +08:00 s/影像/影/ |
8 LazyZhu 2013-07-28 11:06:28 +08:00 |
9 013231 2013-07-28 11:37:11 +08:00 @LazyZhu 要再充一下, 於大部分程言, 0假, 非零真; 但於bash正好相反, 0(行成功)真, 非零(行失)假. |
10 darasion 2013-07-28 11:59:34 +08:00 命令或程序的返回值,是程序运行完毕或退出时放在寄存器里返回给内核的状态,跟重定向没关系,也没办法重定向。shell做布尔判断的就是这个东西。 能重定向的是:标准输入,标注输出,标准错误,它们都是文件描述符,是进程打开的文件(屏幕中断也是设备文件)的代号。 大概是这个意思吧。 |