在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
当前回答
还有一种方法。。。
> H="Hello "
> U="$H""universe."
> echo $U
Hello universe.
…还有另一个。
> H="Hello "
> U=$H"universe."
> echo $U
Hello universe.
其他回答
还有一种方法。。。
> H="Hello "
> U="$H""universe."
> echo $U
Hello universe.
…还有另一个。
> H="Hello "
> U=$H"universe."
> echo $U
Hello universe.
即使现在允许使用+=运算符,它也已在2004年的Bash 3.1中引入。
如果幸运的话,在较旧的Bash版本上使用此运算符的任何脚本都将失败,并显示“命令未找到”错误,或“语法错误接近意外标记”。
对于那些关心向后兼容性的人,请使用较旧的标准Bash连接方法,如所选答案中提到的方法:
foo="Hello"
foo="$foo World"
echo $foo
> Hello World
foo="Hello"
foo="${foo} World"
echo "${foo}"
> Hello World
通常,要连接两个变量,只需将它们一个接一个地写入即可:
a='Hello'
b='World'
c="${a} ${b}"
echo "${c}"
> Hello World
使用引号的最简单方法:
B=Bar
b=bar
var="$B""$b""a"
echo "Hello ""$var"
更安全的方式:
a="AAAAAAAAAAAA"
b="BBBBBBBBBBBB"
c="CCCCCCCCCCCC"
d="DD DD"
s="${a}${b}${c}${d}"
echo "$s"
AAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCDD DD
包含空格的字符串可以成为命令的一部分,请使用“$XXX”和“${XXX}”来避免这些错误。
再看看其他关于+=