首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流重定向顺序和os详细执行的内容

问流重定向顺序和os详细执行的内容
EN

Stack Overflow用户
提问于 2013-10-24 13:39:17
回答 2查看 87关注 0票数 2

这两个bash命令的区别是: 1.打印错误!%v!!> dumpz 2>&1 2. printf "somthing!%v“Oops!2>&1 > dumpz当我使用第一个脚本时,两个流都保存在文件中(Dumpz)。当我使用第二个脚本时,只有stdout进入文件,stderr显示在终端中。

另一个问题是为什么在第一个脚本中流序列是不正确的,我的意思是第一行文件包含stderr,第二行包含stdout。我需要一些帮助,在这个流的背景下到底做了些什么。我是说OS真正执行的是什么(指针、内存等)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-24 13:44:45

在这些重定向中,秩序是非常重要的。

代码语言:javascript
复制
printf "somthing wrong!%v" Oops! > dumpz 2>&1 

将stdout重定向到dumpz文件,然后将stderr重定向到标准输出被重定向的位置。

但这条命令:

代码语言:javascript
复制
printf "somthing wrong!%v" Oops! 2>&1 > dumpz 

首先将stderr重定向到标准输出被重定向的位置(tty或终端),然后将stdout重定向到dumpz文件。

票数 0
EN

Stack Overflow用户

发布于 2013-10-24 13:44:37

重定向的应用程序按您指定的顺序进行,所以在第一种情况下

代码语言:javascript
复制
printf "somthing wrong!%v" Oops! > dumpz 2>&1

它首先将stdout重定向到文件,然后将stderr重定向到指向的任何stdout,即文件。

在第二个案例中

代码语言:javascript
复制
printf "somthing wrong!%v" Oops! 2>&1 > dumpz

它首先将stderr重定向到指向任何stdout (当前的终端)。然后将stdout重定向到文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19567634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档