《LINUX与UNIX SHELL编程》之“文件描述符及在循环中的应用

《LINUX与UNIX SHELL编程》之“文件描述符及在循环中的应用”
2010-05-09 20:33

在shell编程过程中,我们经常会用到如下形式的语句:

if find / -name passwd >find.txt 2>&1;then

其中2、1两个数字就是文件描述符。系统中共有12个文件描述符,0、1、2分别是标准输入、标准输出、标准错误,3到9是可以被任意使用的。常用的一些重定向组合包括:

command > filename 2>&1 把标准输出和标准错误一起重定向到一个文件中;

command < filename > filename2 以filename1为标准输入,以filename2为标准输出;

command << delimiter 从标准输入中读入,直到遇到delimeter分界符;

command < (>)&m 把文件描述符m作为标准输入(重定向到文件描述符m中);

command < &- 关闭标准输入

在使用while循环将数据读入一个文件时,可以使用文件描述符,例如下面的例子使用文件描述符3、4将myfile.txt备份到myfile.bak中:

exec 4>&myfile.bak

exec 3<&myfile.txt

while:

do

    read LINE <&3

    echo $LINE > &4

done

猜你喜欢

转载自javapyer.iteye.com/blog/762069