在PHP中,字符串按如下方式连接在一起:

$foo = "Hello";
$foo .= " World";

在这里,$foo变成了“Hello World”。

这是如何在Bash中实现的?


当前回答

有一种特殊情况需要注意:

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"

     

我更喜欢使用花括号${}来扩展字符串中的变量:

foo="Hello"
foo="${foo} World"
echo $foo
> Hello World

卷曲括号将适合连续字符串用法:

foo="Hello"
foo="${foo}World"
echo $foo
> HelloWorld

否则,使用foo=“$fooWorld”将不起作用。

$ a=hip
$ b=hop
$ ab=$a$b
$ echo $ab
hiphop
$ echo $a$b
hiphop

如果要附加下划线之类的内容,请使用转义符(\)

FILEPATH=/opt/myfile

这不起作用:

echo $FILEPATH_$DATEX

这很好:

echo $FILEPATH\\_$DATEX

你也可以这样做:

$ var="myscript"

$ echo $var

myscript


$ var=${var}.sh

$ echo $var

myscript.sh