首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果一个命令行中有多个重定向操作符,这些操作是如何工作的?(巴什)

如果一个命令行中有多个重定向操作符,这些操作是如何工作的?(巴什)
EN

Stack Overflow用户
提问于 2020-12-15 10:29:53
回答 1查看 325关注 0票数 0

如果在一个命令中多次重定向操作符。(巴什)

  1. 相同的重定向操作符。

例如。

arg_1 > arg_2 > arg_3 > arg_4

  1. 不同的重定向操作符。

例如。

arg_1 < arg_2 > arg_3 < arg_4 < arg_5 > arg_6

我知道如果一个重定向操作符是如何工作的。

但是,如果一个命令行中有多个重定向操作符,这些操作是如何工作的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-15 14:15:39

重定向是从左到右计算的。把>foo看作是stdout=foo。因此重定向在

代码语言:javascript
复制
prog >foo >bar 

对应于设置

代码语言:javascript
复制
stdout=foo
stdout=bar

,这意味着总体来说,stdout最终被重定向到bar (比如首先将变量设置为一个值,然后设置为某个不同的值),但是由于将stdout设置为一个文件,也具有创建该文件的效果,所以foo和bar最终都将存在,即使没有任何写入foo的内容。

就像,

代码语言:javascript
复制
prog >foo 2>&1 >bar

会做一个

代码语言:javascript
复制
stdout=foo
stderr=stdout
stdout=bar

你就会去酒吧,斯泰尔去福。当然,在实践中,您只需编写prog 2>foo >bar,就可以达到这一效果。

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

https://stackoverflow.com/questions/65304065

复制
相关文章

相似问题

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