一直没怎么弄明白shell操作文件描述符的问题,昨天又看了看,还是不怎么明白,真是太笨了。
先把自己理解的记录下:
0 stdin
1 stdout
2 stderr
这个编号可以设定,/etc/security/limits.conf。
exec n>./tt.file 将文件tt.file和n号描述符关联,文件只作为输入用途
date >&n 将date输出定向到n描述符,也即是文件tt.file
exec n<./tt.file 将文件tt.file和n号描述符关联,文件只作为输出用途
exec n<>./tt.file 将文件tt.file和n号描述符关联,文件作为输入输出用途
n<&- n>&- 任意一个关闭描述符n,不能再读写了。
如果文件的用途用错了:
读的,当成写的:
date >&4
date: write error: Bad file descriptor
写的,当成读的:
read -n 10 b <&4
-bash: read: read error: 0: Bad file descriptor
如果关闭标准输入了,就会logout
exec 0<&-
如果关闭标准输出了,都不知道如何再打开了?date: write error: Bad file descriptor
exec 1>&-
如果关闭标准错误了,就没反应了。。。
==end
阅读(4367) | 评论(2) | 转发(0) |