《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