将字符串附加到变量

时间:2016-02-07 01:16:12

标签: bash

我通过寻找一些特定的字符串来读取一些文件行。当我发现我将它分配给var。 但是当我尝试追加到那个字符串时,我遇到了问题。而不是添加到var的末尾,而是获取var,其中开头的字符被新字符替换。

示例:

echo $fileToGet
newVar=$fileToGet".xml"
echo $newVar

输出:

c024z160205
.xmlz160205

我想要的是:c024z160205.xml 我想我尝试了Stack上的所有内容,有几种附加方法,但没有任何作用。

2 个答案:

答案 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";你必须把变量也放在引号内。

告诉我它现在是否有效。