Shell中while read line遇到的坑

2021-10-07 19:50:21 字數 445 閱讀 5861

今天寫cat檔案,並將結果賦值到陣列中時遇到個坑,while read line之後,我在do done之中進行陣列賦值,最後列印發現陣列為空,錯誤**如下:

function testcat(

)

經過查詢,找到以下描述」while read line 是一次性將檔案資訊讀入並賦值給變數line ,while中使用重定向機制,檔案中的所有資訊都被讀入並重定向給了整個while 語句中的line 變數。 for是每次讀取檔案中乙個以空格為分割符的字串。」

多方查詢加實踐得出了下面的方法:

function testcat(

);i++

)) do

echo

$done

}

暫時只找到了這種寫法並且實驗成功了,如果大佬們有好的寫法,歡迎交流

shell中while read命令的理解

在shell中處理文字時,常用使用while和read進行配合實現。使用方法是 while read do x done txt 形式一 這裡之前一直不能理解,為什麼不是while read txt do done 形式二 的形式。理解如下 1.形式一是將 txt的內容作為while命令的標準輸入,...

while read讀取文字內容

讀取檔案給 while 迴圈 方式一 exec 方式二 cat file path while read line do cmd done方式三 while read line do cmd done 舉例 ip.txt內容如下 10.1.1.11 root 123 10.1.1.22 root 1...

Shell中fork source exec的區別

fork是linux的系統呼叫,用來建立子程序,子程序是父程序的乙個副本,從父程序那裡獲得一定的資源分配以及繼承父程序的環境。子程序與父程序唯一不同的地方在於pid process id 環境變數 傳給子程序的變數,遺傳性是本地變數和環境變數的根本區別 只能單向從父程序傳給子程序。不管子程序的環境變...