对shell重定向的补充

http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html

对上面文章的补充:

感谢上面作者的分享


对于这样的命令:

exec 6>&1 表示把文件描述符6重定向1,也就是标准输出。以后对6的写读都从标准输出获得。

有了上面以后,在执行下面的命令:

exec 6>aa.txt 表示把文件描述符6重定向到aa.txt,对于以前的重定向到1不再起作用。



exec 6>&- 表示关闭文件描述符6.


如果我们连续执行下面语句

exec 6>&1 

exec 1>aa.txt

exec 1>&6   这里的>&之间没有空格,凡是&n在右边时都没有空格

其意思是:先把6绑定到1.此时对6输出将发送到标准输出1;然后将标准输出1绑定到aa.txt,此时在终端ls操作将不在界面显示,而是送到aa.txt;并且对文件描述符6的操作还是输出到标准输出1. 最后将标准输出1重定向到6,这里的6代表的就是标准输出设备。


从上面的分析可以看出一下几点:

1.  >&之间没有空格

2. 文件描述符在>的左边时,没有&,在右边时有&,表示已经打开的文件描述符

3.>右边的相当于一个变量,其值可以改变,表示重定向到>右边的描述。

4.>右边多次重定向后,就变成最后一次有效了。

5.a>b,b>c后,a还是重定向到b所代表的设备,不会到c,所以>左边有变量的意思。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值