天天看點

shell循環讀取檔案

-z “str” :判斷字元串為空

-n "str":判斷字元串不為空

方法1:while循環中執行效率最高,最常用的方法。

function while_read_LINE_bottm(){

 While read LINE

 do

echo $LINE

done  < $FILENAME

}

        注釋:我習慣把這種方式叫做read釜底抽薪,因為這種方式在結束的時候需要執行檔案,就好像是執行完的時候再把檔案讀進去一樣。

方法2 : 重定向法;管道法: cat $FILENAME | while read LINE

Function While_read_LINE(){

 cat $FILENAME | while read LINE

 do 

echo $LINE

done

}

          注釋:我隻所有把這種方式叫做管道法,相比大家應該可以看出來了吧。當遇見管道的時候管道左邊的指令的輸出會作為管道右邊指令的輸入然後被輸入出來。

方法3: 檔案描述符法

Function while_read_line_fd(){

Exec 3<&0

Exec 0<$FILENAME

While read LINE

Do 

 Echo $LINE

 Exec 0<&<3

}

        注釋: 這種方法分2步驟,第一,通過将所有内容重定向到檔案描述符3來關閉檔案描述符0.為此我們用了文法Exec 3<&0 。第二部将輸入檔案放送到檔案描述符0,即标準輸入。

方法4    for  循環。

function  for_in_file(){

For  i  in  `cat $FILENAME`

do

echo $i

done

}

繼續閱讀