- 论坛徽章:
- 0
|
bash圣经上讲:
关闭文件描述符
n<&- 关闭输入文件描述符n.
0<&-, <&- 关闭stdin.
n>&- 关闭输出文件描述符n.
1>&-, >&- 关闭stdout.
echo 1234567890 > File # 写字符串到"File".
exec 3<> File # 打开"File"并且给它分配fd 3.
read -n 4 <&3 # 只读4 个字符.
echo -n . >&3 # 写一个小数点.
exec 3>&- # 关闭fd 3.
cat File # ==> 1234.67890
这种情况下3又是输出符号,又是输入符号,怎么关闭时候只需要exec 3>&1?
exec 6<&0这个是不是代表6与标准输入连接,也就是fd 6里面存的信息就是标准输入的信息,既是将6定位到标准输入上去。?
exec 0<&6 6<&- 这个代表0这个fd可以用6之前保存的信息了,即将0链接到6上去,而且是硬链接,后面你可以将6关掉了?
exec 6>&1 这个是不是代表6与标准输出连接,也就是fd 6里面存的信息就是标准输出的信息,既是将6定位到标准输出上去。?
29 exec 1>&6 6>&- 这个代表1这个fd可以用6之前保存的信息了,即将1链接到6上去,而且是硬链接,后面你可以将1关掉了? |
|