我需要在 bash 中连接两个字符串,以便:
string1=hello
string2=world
mystring=string1+string2
echo mystring
应该产生
你好世界
答案1
除非您要使用 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
只需连接变量:
mystring="$string1$string2"
答案3
如果您需要将变量与文字字符串连接起来:
string1=hello
string2=world
mystring="some ${string1} arbitrary ${string2} text"
echo $mystring
将产生:
一些你好任意世界文本
答案4
如果你想连接很多变量,你也可以使用+=
附加字符串..这可能会增加可读性..
mystring=${string1}
mystring+=${string2}
mystring+=${string3}
mystring+=${string4}
echo ${mystring}
正如其他答案所提到的,这里不需要 {},但我个人总是使用它们来避免一些语法错误。
+=
也可用于将值附加到数组:array+=($b)
.