重定向问题学习

转自:https://blog.csdn.net/liucy007/article/details/90207830

1.Linux重定向输出

输出分为正确输出和错误输出:

  • 0代表标准输入,
  • 1代表标准正确输出,
  • 2代表标准错误输出。

注意:错误输出重定向>/>>后边没有空格。

上图中1和3、2和4作用是相同的。

2.输入重定向 

用 < 来改变读进的数据信道(stdin),使之从指定的文件读进。

3.和echo结合

转自:http://t.csdn.cn/jDNjO,相当复杂,讲的不错。

&是文件描述符,&2 表示错误通道2,

echo hello 1>&2 

表示hello 重定向输出到错误通道2。当然也是显示器上,只不过是标准错误输出。

 echo hello 1>2 

是hello 重定向输出到2这个文件里去了。

echo 1>FLAG

表示将标准输出重定向到FLAG文件,内容什么也没有。

echo hello 1>&2 |grep aaa #输出hello,1>&2 将正确输出重定向到标准错误2通道    
echo hello 2>&1 |grep aaa  #无输出,2>&1将错误输出重定向到标准输出1通道
  • echo hello 1>&2 后面跟了一个 | grep aaa:| 是管道,意思就是将第一条指令的结果放到第二条指令中,管道命令右边只处理左边的标准正确输出,也就是通道1;| grep aaa 搜素左边传来的标准输出通道1的结果,发现没有aaa,所以没有输出,最终屏幕只显示一个hello。【原来是这样】
  • 将错误返回值输出到标准1通道,不过该语句正确,没有错误,通道2也就为空,屏幕没有显示,| grep aaa 搜素左边传来的标准输出通道1的结果,通道1有hello 但是没有 aaa 所以没有输出,所以屏幕没有显示。

新例子:

posted @ 2022-09-28 21:21  lypbendlf  阅读(55)  评论(0编辑  收藏  举报