這是我的代碼逐行讀取文件行:爲什麼在讀取文件時剪切變量?
IFS=$'\n'
myfile="$1"
i=0
while read line; do
echo "Line # $i: '$line'"
let i++
done < "$myfile"
這是
Hello
stack
overflow
friends
我執行它像這樣作爲參數傳遞的文件:test.sh input.txt
,我得到這樣的結果:
'ine # 0: 'Hello
'ine # 1: 'stack
'ine # 2: 'overflow
'ine # 3: 'friends
正如您所看到的,fisrt字符被替換爲一個引號。並沒有出現最後一行的報價。這裏發生了什麼?我看不到錯誤?任何想法?
什麼操作系統?它工作正常W/O在OSX上砍我。可能是IFS解釋的問題。你嘗試沒有這條線嗎? – beroe
它可能與$ line的單引號有關。 – mahatmanich