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

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

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

     exec 3<&0

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

     exec 0< $INFILE

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

     exec 0<&3

扫描二维码关注公众号,回复: 1308905 查看本文章

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>&-

猜你喜欢

转载自zzuwxf.iteye.com/blog/1410103