欢迎来到李先生的博客

深山的鹿,不知归处;万般皆苦,只可自渡。
扩大
缩小

exec 与文件描述符

参考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:读取文件创建一个文件描述符   

1 [root@lile shell]# cat exec.sh 
2 #!/bin/sh
3 echo lile is good girl > input.txt
4 exec 3< input.txt    #3与< 之间不能有空格

3:创建一个文件描述符用于写

1 #!/bin/sh
2 exec 4> input2.txt
3 echo newline >&4   #>与&$之间不能有空格

4:创建一个文件描述符用于追加

1 #!/bin/sh
2 exec 5>> input3.sh   #先定义追加的符号
3 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>&-

 

posted on 2016-09-30 00:05  Captain_Li  阅读(812)  评论(0编辑  收藏  举报

导航