《LINUX與UNIX SHELL程式設計》之“檔案描述符及在迴圈中的應用

derekzhan發表於2010-09-13
《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

相關文章