LinuxSir.cn,穿越时空的Linuxsir!

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

为什么/dev/null要加>& /dev/null呢

[复制链接]
发表于 2007-5-30 23:05:48 | 显示全部楼层 |阅读模式
[oracle@RHEL5 ]$"netstat -an|grep 5560" >/dev/null
-bash: netstat -an|grep 5560: command not found
[oracle@RHEL5 ]$`netstat -an|grep 5560` >/dev/null
-bash: tcp: command not found
[oracle@RHEL5 ]$ls >/dev/null
[oracle@RHEL5 ]$`netstat -an|grep 5560` >&/dev/null
[oracle@RHEL5 ]$


为什么非要加个&呢
发表于 2007-5-30 23:17:40 | 显示全部楼层
&>null 就是 2>&1 1>/dev/null 的缩写。
1 是 stdout, 2 是 stderr
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-31 00:23:43 | 显示全部楼层
可是我的是>&
回复 支持 反对

使用道具 举报

发表于 2007-5-31 01:25:27 | 显示全部楼层
There are two formats for redirecting standard output and standard error:

              &>word
       and
              >&word

       Of the two forms, the first is preferred.  This is semantically equivalent to

              >word 2>&1
回复 支持 反对

使用道具 举报

发表于 2007-5-31 10:13:09 | 显示全部楼层
netstat -an|grep 5560 >/dev/null就可以了
"netstat -an|grep 5560" >/dev/null的意思是执行netstat -an|grep 5560这个命令,但是这是两个命令,所以出错,
`netstat -an|grep 5560` >/dev/null的意思是执行netstat -an|grep 5560的结果,比如tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN系统没有发现tcp这个命令。
`netstat -an|grep 5560` >&/dev/null其实和上面一样,只是所有的信息,包括出错的,都指向/dev/null了,所以看不到出错信息。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-31 12:35:27 | 显示全部楼层
Post by walkerxk
netstat -an|grep 5560 >/dev/null就可以了
"netstat -an|grep 5560" >/dev/null的意思是执行netstat -an|grep 5560这个命令,但是这是两个命令,所以出错,
`netstat -an|grep 5560` >/dev/null的意思是执行netstat -an|grep 5560的结果,比如tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN系统没有发现tcp这个命令。
`netstat -an|grep 5560` >&/dev/null其实和上面一样,只是所有的信息,包括出错的,都指向/dev/null了,所以看不到出错信息。



经典
明白了
谢谢!!!!!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-31 12:38:05 | 显示全部楼层
不过我还是不知道>和>&有什么区别。
回复 支持 反对

使用道具 举报

发表于 2007-6-1 14:21:34 | 显示全部楼层
Post by walkerxk
netstat -an|grep 5560 >/dev/null就可以了
"netstat -an|grep 5560" >/dev/null的意思是执行netstat -an|grep 5560这个命令,但是这是两个命令,所以出错,
`netstat -an|grep 5560` >/dev/null的意思是执行netstat -an|grep 5560的结果,比如tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN系统没有发现tcp这个命令。
`netstat -an|grep 5560` >&/dev/null其实和上面一样,只是所有的信息,包括出错的,都指向/dev/null了,所以看不到出错信息。
厉害,佩服!

to redliquid:
> 是重定向,把标准输出也就是1 输入到>后面的文件里
>& 也是重定向,只不过是把标准错误 (2) 输入到 >& 后面跟着的文件里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-2 21:46:24 | 显示全部楼层
也就是说2>和>&一个意思
回复 支持 反对

使用道具 举报

发表于 2007-6-3 01:27:40 | 显示全部楼层
我贴了答案了啊。。晕。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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