Bash 如何在shell脚本中将值附加到变量

Bash 如何在shell脚本中将值附加到变量,bash,shell,sh,Bash,Shell,Sh,我从属性中获取一个变量值,并且我能够访问sh文件中的。 但我无法向该变量附加另一个值 请建议 $ echo "Build ID from properties:"$BUILD_ID Build ID from properties: abcd_v6_c1 $ echo " num----------------" build_${BUILD_ID}.zip .zip---------------- build_abcd_v6_c1 请建议如何附加.zip值。以下方法对我适用。My.sh文件包

我从属性中获取一个变量值,并且我能够访问sh文件中的。 但我无法向该变量附加另一个值

请建议

$ echo "Build ID from properties:"$BUILD_ID
Build ID from properties: abcd_v6_c1

$ echo " num----------------" build_${BUILD_ID}.zip
.zip---------------- build_abcd_v6_c1

请建议如何附加.zip值。

以下方法对我适用。My.sh文件包含以下内容:

#!/bin/bash -x
. /usr/test/build.properties
echo $BUILD_ID
echo "num----------------" build_${BUILD_ID}.zip

下面这个方法对我很有用。My.sh文件包含以下内容:

#!/bin/bash -x
. /usr/test/build.properties
echo $BUILD_ID
echo "num----------------" build_${BUILD_ID}.zip

假设我们有一个variablevar1=值。 如果要在变量开头添加一些文本,可以执行以下操作:

var1="some text${var1}"
如果我想在结尾添加一些文字,它将是:

var1="${var1}some text"

假设我们有一个variablevar1=值。 如果要在变量开头添加一些文本,可以执行以下操作:

var1="some text${var1}"
如果我想在结尾添加一些文字,它将是:

var1="${var1}some text"
您可以简单地使用assignment=运算符来追加文本

a=don
b=$a" jon"
echo $b #==>don jon
您可以简单地使用assignment=运算符来追加文本

a=don
b=$a" jon"
echo $b #==>don jon

在$BUILD\u ID变量中似乎有一个窗口

要进行检查,请尝试此命令,回车符将显示为^M:

结果应该是:

text48979
可以使用Bash参数替换来清除变量:

$ ID=${BUILD_ID%$'\r'}
$ echo ${ID}text
585548979text

在$BUILD\u ID变量中似乎有一个窗口

要进行检查,请尝试此命令,回车符将显示为^M:

结果应该是:

text48979
可以使用Bash参数替换来清除变量:

$ ID=${BUILD_ID%$'\r'}
$ echo ${ID}text
585548979text
谢谢大家

能够解决这个问题。。这是因为^M谢谢@Kenavoz现在我有了正确的身份证,可以继续进行o/p

更改:BUILD_ID=${ID%$'\r'}

谢谢, Sampath A

谢谢大家

能够解决这个问题。。这是因为^M谢谢@Kenavoz现在我有了正确的身份证,可以继续进行o/p

更改:BUILD_ID=${ID%$'\r'}

谢谢,
Sampath A

我得到下面的o/p.zip是什么o/p------build\u xiao\u v6\u c1但我需要build\u xiao\u v6\u c1.zip我得到下面的o/p是什么o/p.zip------build\u xiao\u v6\u c1但我需要build\u xiao\u v6\u c1.zip您的$build\u ID变量末尾可能有一个特殊字符,对输出可能有不良影响,可能是A^M或^A。您可以使用cat-A检查$BUILD\u ID变量末尾可能有一个特殊字符,该字符对输出可能有不良影响^M或^A。您可以使用cat-A@chepner检查,谢谢您的编辑。请注意${BUILD\u ID/%$'\r'/}也是有效的,因为它将后面最短的字符串`$'\r'替换为零。但是,正如你所建议的那样,缩短字符串更简单。哦,对不起。我实际上已经读到了${BUILD_ID%/$'\r'/}转换了首字母/和%,这就是为什么我认为它是错误的;cat-et也可以与BSD/OSX cat一起工作;sed-nl是一个兼容POSIX的替代品。@chepner感谢您的编辑。请注意${BUILD\u ID/%$'\r'/}也是有效的,因为它将后面最短的字符串`$'\r'替换为零。但是,正如你所建议的那样,缩短字符串更简单。哦,对不起。我实际上已经读到了${BUILD_ID%/$'\r'/}转换了首字母/和%,这就是为什么我认为它是错误的;cat-et也可以与BSD/OSX cat一起工作;sed-NL是一种兼容POSIX的替代方案。