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


Answers:


38

只需连接变量:

mystring="$string1$string2"

51

除非要使用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"

2
这就是我一直在寻找的内容[z =“ $ xand $ y”#不起作用..... z =“ $ {x} and $ y”#可以起作用,“ fooandbar”]。谢谢。
大放异彩'17

18

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

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

echo $mystring 将产生:

一些你好任意世界文本


6
您可以使用${var}格式的任何时候你想,但你只需要它的时候$var要紧跟着另一个有效的变量名字符...例如:$vararbitary将诠释一个名为“vararbitary”变量,但你可以通过避开它${var}arbitary....糟糕,我刚刚看到了卡默尔的弃权票。.
Peter.O 2011年

11

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

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.