先看输入重定向,假设我们使用文件描述符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>&-