it-swarm.cn

如何将字符串变量串联成第三个?

我需要在bash中连接两个字符串,以便:

string1=hello
string2=world

mystring=string1+string2

echo mystring应该产生

你好,世界

39
michelemarcon

只需连接变量:

mystring="$string1$string2"
40
SiegeX

除非要使用bash变量参数或立即附加一个将作为标识符一部分有效的字符,否则无需使用{}。除非您的参数将包含特殊字符,否则您也无需使用双引号。

x=foo
y=bar
z=$x$y        # $z is now "foobar"
z="$x$y"      # $z is still "foobar"
z="$xand$y"   # does not work
z="${x}and$y" # does work, "fooandbar"
z="$x and $y" # does work, "foo and bar"
53
khamer

如果您需要使用文字字符串来连接变量:

string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"

echo $mystring将产生:

一些你好任意世界文本

19
phunehehe

如果要串联许多变量,还可以使用_+=_附加字符串。这可能会提高可读性。

_mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}
_

如其他答案所述,此处不需要{},但我个人总是使用它们来避免某些语法错误。

_+=_也可以用于将值追加到数组:array+=($b)

12
mariux