使用文件描述符进行输入,输出重定向

先看输入重定向,假设我们使用文件描述符3进行输入重定向:

 

1)把文件描述符3和标准输入stdin(文件描述符为0)关联起来,执行下面的命令之后,所有键盘和鼠标的输入都被重定向到文件描述符3

     exec 3<&0

 

2) 把标准输入stdin重定向到文件,执行下面的命令后,所有的输入都会从$INFILE中读取

     exec 0< $INFILE

 

3)恢复标准输入,即仍然用文件描述符0表示标准输入

     exec 0<&3

 

4)关闭文件描述符3

    exec 3>&-

 

 

来看一个例子:

 

exec 3<&0

exec 0< $INFILE

 

while read line; do

    echo $line > $OUTFILE

done

 

exec 0<&3

exec 3>&-

 

同样的,用下面的方法可以把文件描述符4和标准输出关联起来。

 

 

1)把文件描述符4和标准输出stdout(文件描述符为1)关联起来,执行下面的命令之后,所有标准输出都被重定向到文件描述符4

     exec 3<&1

2) 把标准输出stdout重定向到文件,执行下面的命令后,所有的标准输出都会到$OUTFILE中读取

     exec 1> $OUTFILE

3)恢复标准输出,即仍然用文件描述符1表示标准输出

     exec 1<&4

4)关闭文件描述符4

    exec 4>&-

 

来看一个例子:

 

exec 4<&1

exec 1< $OUTFILE

 

while read line; do

    echo $line

done < $INFILE

 

exec 1<&4

exec 4>&-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值