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

mic*_*con 42 shell string variable

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

string1=hello
string2=world

mystring=string1+string2
Run Code Online (Sandbox Code Playgroud)

echo mystring 应该产生

你好,世界

小智 54

除非您打算使用 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"
Run Code Online (Sandbox Code Playgroud)

  • 这就是我一直在寻找的 [z="$xand$y" # 不起作用 ..... z="${x}and$y" # 起作用,"fooandbar"]。谢谢。 (2认同)

Sie*_*geX 43

简单地连接变量:

mystring="$string1$string2"
Run Code Online (Sandbox Code Playgroud)


phu*_*ehe 19

如果您需要将变量与文字字符串连接起来:

string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"
Run Code Online (Sandbox Code Playgroud)

echo $mystring 将产生:

一些你好任意世界文本

  • 您可以随时使用 `${var}` 格式,但只有当 `$var` 后面紧跟另一个有效的变量名字符时,您才**需要**它......例如:`$vararbitary ` 将解释一个名为“vararbitary”的变量,但你可以通过使用 `${var}arbitary` 来绕过它......哎呀,我刚刚看到了 khamer 的 abswer.. 但我不妨在这里留下评论。 (6认同)

mar*_*iux 12

如果你想连接很多变量,你也可以+=用来附加字符串..这可能会增加可读性..

mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}
Run Code Online (Sandbox Code Playgroud)

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

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