-1
我有一個列表,我想運行一個命令,所以我首先測試它與回聲,以確保它是正確的,但它打印出來是錯誤的。Bash替換字符串我不希望它
while read name; do echo $name; done < RandomNames
此打印出來只是這個名單我究竟怎麼想,但如果我的變量後放任何東西它取代了它的開始。
所以,如果我寫
while read name; do echo $name; done < RandomNames
它將打印
Rich
Chris
Zack
,但如果我寫
while read name; do echo $name t; done < RandomNames
寫入
tch
tris
tck
因此它會將變量後面的前兩個字符替換掉,我不知道爲什麼。
我無法複製這個運行您的最後一個命令。你確定這是你的bug的來源嗎? – dimo414
未來,嘗試提供**完整**再現步驟,在這種情況下,從創建RandomNames文件開始。如果您嘗試測試以'printf'%s \ n'Rich Chris Zack> RandomNames'開始的再現步驟,然後運行您的命令,您很快就會注意到它並未真正重現您的問題,從而使其清晰該文件的內容不是你認爲的那樣。 –
順便說一下,'echo $ foo'有它自己的錯誤; '回聲「$ foo」'避免它們。 (例如,看看'foo ='*''會發生什麼事情)。 –