在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
当前回答
$ a=hip
$ b=hop
$ ab=$a$b
$ echo $ab
hiphop
$ echo $a$b
hiphop
其他回答
Bash还支持一个+=运算符,如以下代码所示:
A="X Y"
A+=" Z"
echo "$A"
输出
X Y Z轴
更安全的方式:
a="AAAAAAAAAAAA"
b="BBBBBBBBBBBB"
c="CCCCCCCCCCCC"
d="DD DD"
s="${a}${b}${c}${d}"
echo "$s"
AAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCDD DD
包含空格的字符串可以成为命令的一部分,请使用“$XXX”和“${XXX}”来避免这些错误。
再看看其他关于+=
还有一种方法。。。
> H="Hello "
> U="$H""universe."
> echo $U
Hello universe.
…还有另一个。
> H="Hello "
> U=$H"universe."
> echo $U
Hello universe.
有一种特殊情况需要注意:
user=daniel
cat > output.file << EOF
"$user"san
EOF
将输出“daniel”san,而不是danielsan,正如您可能希望的那样。在这种情况下,您应该改为:
user=daniel
cat > output.file << EOF
${user}san
EOF
尽管有特殊的运算符+=用于连接,但有一种更简单的方法:
foo='Hello'
foo=$foo' World'
echo $foo
双引号需要额外的计算时间来解释内部变量。如果可能,请避免。