20.1 使用 exec
#!/bin/bash
# 使用 'exec' 重定向 标准输入 .
exec 6<&0 # 链接文件描述符 #6 到标准输入.
# .
exec < data-file # 标准输入被文件 "data-file" 替换
read a1 # 读取文件 "data-file" 首行.
read a2 # 读取文件 "data-file" 第二行
echo
echo "Following lines read from file."
echo "-------------------------------"
echo $a1
echo $a2
echo; echo; echo
exec 0<&6 6<&-
# 现在在之前保存的位置将从文件描述符 #6 将 标准输出 恢复.
#+ 且关闭文件描述符 #6 ( 6<&- ) 让其他程序正常使用.
#
# <&6 6<&- also works.
echo -n "Enter data "
read b1 # 现在按预期的,从正常的标准输入 "read".
echo "Input read from stdin."
echo "----------------------"
echo "b1 = $b1"
echo
exit 0Last updated