我通过寻找一些特定的字符串来读取一些文件行。当我发现我将它分配给var。 但是当我尝试追加到那个字符串时,我遇到了问题。而不是添加到var的末尾,而是获取var,其中开头的字符被新字符替换。
示例:
echo $fileToGet
newVar=$fileToGet".xml"
echo $newVar
输出:
c024z160205
.xmlz160205
我想要的是:c024z160205.xml
我想我尝试了Stack上的所有内容,有几种附加方法,但没有任何作用。
答案 0 :(得分:0)
问题结果是\r
。在为var fileToGet
分配行之前,我执行以下操作:
newVar=$(echo "$fileToGet" | tr -d '\r')
在连接之后,我有我想要的东西。
我编辑这个答案,因为它包含错误的信息。 @chepner在评论中描述了什么问题:'The terminal simply displays any characters following the carriage return at the beginning of the line, overwriting the earlier characters.'
谢谢!
答案 1 :(得分:-1)
您的代码适用于我,请尝试使用:
newVar="${fileToGet}.xml"
而不是newVar=$fileToGet".xml"
;你必须把变量也放在引号内。
告诉我它现在是否有效。