参考http://blog.csdn.net/baoendemao/article/details/51638746
1:用法
exec 3<2.txt 以只读方式打开2.txt,文件描述符为3
exec 3>2.txt 以只写方式打开2.txt,文件描述符为3
exec 3<>2.txt 以读写方式打开2.txt,文件描述符为3
exec 3<&- 关闭文件描述符3
2:读取文件创建一个文件描述符
[root@lile shell]# cat exec.sh
#!/bin/sh
echo lile is good girl > input.txt
exec 3< input.txt #3与< 之间不能有空格
3:创建一个文件描述符用于写
#!/bin/sh
exec 4> input2.txt
echo newline >&4 #>与&$之间不能有空格
4:创建一个文件描述符用于追加
#!/bin/sh
exec 5>> input3.sh #先定义追加的符号
echo append line >&5 #这里使用的时候还是用>
5:例子
1)设定变量file的值为/etc/passwd
2)使用循环读取文件/etc/passwd的第2,4,6,10,13,15行,并显示其内容
3)把这些行保存至/tmp/mypasswd文件中
#!/bin/sh #set variables file is /etc/passwd
#get 2 4 6 8 10 14 15 /etc/passwd show
#and echo in /tmp/passwd file="/etc/passwd" for I in 2 4 6 8 10 14 15
do
exec 3>> /tmp/passwd
username=`cat -n $file | head -$I |tail -1`
echo $username
echo $username >&3
done
exec 3>&-