昨天我也问了这个问题。感谢所有的答案。但我还是不明白。
我做了
$ exec 6<&0 0</tmp/lines.txt
我想:我的标准输入现在被重定向了。但是文件中的行也被执行了!那么当你只这样做时是否有默认操作?这是我的问题。
比方说
$ cat /tmp/lines.txt
read i j
read i j
echo "i:$i,j:$j">/tmp/res.txt
我做 exec,然后我做
$ cat /tmp/res.txt
i:read,j:i j
但是当我这样做时
$ exec 6<&0 0</tmp/lines.txt;exec 0<&6 6<&-
没有任何内容被读取或执行。我可以阅读台词,但现在我必须自己做出行动,
$ exec 6<&0 0</tmp/lines.txt ;while read i j;do echo "i:$i,j:$j";done
我在我的终端看到,
i:read,j:i j
i:read,j:i j
i:echo,j:"i:$i,j:$j">/tmp/res.txt
再次感谢,希望不会太长,
埃里克·J。