1. 程式人生 > >read從檔案讀入資料

read從檔案讀入資料

檔案1中內容
a
b
c
d
e

 

exec 3<"1"
while read line<&3
do
 echo $line
done
#完整輸出檔案所有字元,使用了檔案描述符,指標會移動到下一行

while read line < "1"
do
 echo $line
done
#迴圈輸出第一個字元,這裡是把1中的資料流當做read命令的輸入,但是隻讀一行


cat 1 | while read line
do
    echo $line
done
#完整輸出檔案所有字元,這裡是同樣是把1中的整個資料流當做while命令的輸入

while read line
do
    echo $line
done < "1"
#完整輸出檔案所有字元,這裡是把1中的整個資料流當做while命令的輸入

read line < "1"
echo $line
read line < "1"
echo $line
#輸出了兩個a,說明讀完後指標沒有移到下一行.很可能是因為檔案識別符號,也就是檔案指標不一樣了,重新分配了一個.

 

綜上分析,第二段程式碼只讀入第一行的原因是使用執行read命令,執行一次會分配一個新的檔案識別符號,所以得到的總是第一行的字串.