LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: andrew

"2>&1" 是什么意思?[重定向问题合并]

[复制链接]
发表于 2003-8-6 21:12:00 | 显示全部楼层
Of cause you can redirect stdout and stderr like this:
command &>filename.
But this is not so good.
You will see that the messages from stderr and stdout may cross into each other.
Why? Caz stderr is non-bufferred output, while stdout is bufferred output.
So type  command>filename 2 >&1 will be better.
But if you type  command>filename 1 >&2 will get the some effect as command &>filename
  1. We assume the x corrdinate is time zone
  2. When we type command &>filename, the stream is like this
  3. Caz, non-buffered output is slow.
  4. V y
  5. |
  6. | s        t          d           e          r          r
  7. |  stdout
  8. |
  9. |                                                                         x
  10. |---------------------------------------------------------->(time)
  11. So you see that stderr and stdout cross into each other.
  12. But while you type like command>filename 2 >&1
  13. the stream is like this,Caz, buffered output is fast.
  14. |
  15. |                   stderr
  16. |  stdout
  17. |
  18. |                                                                         x
  19. |---------------------------------------------------------->(time)
  20. So this is good.
复制代码
Of cause I left out some other things.

If my understanding is wrong, please correct it.
发表于 2003-8-6 21:26:17 | 显示全部楼层
给楼主一个咱们版以前关于重定向的讨论的铁子,(中文的);)
http://www.linuxsir.cn/bbs/showt ... =%D6%D8%B6%A8%CF%F2
另外,在我们提问之前,建议先搜索一下论坛,有很多问题都是可以找到解决方案的!
发表于 2003-8-6 21:34:18 | 显示全部楼层
So some of understanding is wrong.

I should read more book.

But how about this?:
command &>file

How to produce stderr output in shell?

ft, wrong place!!
发表于 2003-8-6 21:42:47 | 显示全部楼层
So some of understanding is wrong.

I should read more book.

But how about this?:
command &>file

How to produce stderr output in shell?
发表于 2003-8-7 09:50:20 | 显示全部楼层
&>file 等同于 >file 2>&1
还有一种写法是 >& file,但不正规。
这是 man bash 里说的。
发表于 2003-8-7 10:14:32 | 显示全部楼层
so &> eq >& ,right?

Andyou think my understanding is wrong or not?
发表于 2003-8-7 12:01:19 | 显示全部楼层

多谢版主

最初由 javalee 发表
给楼主一个咱们版以前关于重定向的讨论的铁子,(中文的);)
http://www.linuxsir.cn/bbs/showt ... =%D6%D8%B6%A8%CF%F2
另外,在我们提问之前,建议先搜索一下论坛,有很多问题都是可以找到解决方案的!


明白了,不过为什么上面这篇没加到精华呢?
发表于 2003-8-7 12:57:24 | 显示全部楼层
最初由 lordbyorn 发表
so &> eq >& ,right?

Andyou think my understanding is wrong or not?

yes,
but &> is preferred.

from "man bash"

       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 equiva-
       lent to

              >word 2>&1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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