-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 ='*''会发生什么事情)。 –