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

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

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

这是如何在Bash中实现的?


当前回答

使用引号的最简单方法:

B=Bar
b=bar
var="$B""$b""a"
echo "Hello ""$var"

其他回答

如果您要做的是将字符串拆分为多行,则可以使用反斜杠:

$ a="hello\
> world"
$ echo $a
helloworld

中间有一个空格:

$ a="hello \
> world"
$ echo $a
hello world

此选项还只在两者之间添加一个空格:

$ a="hello \
>      world"
$ echo $a
hello world

你也可以这样做:

$ var="myscript"

$ echo $var

myscript


$ var=${var}.sh

$ echo $var

myscript.sh

请注意,这不会起作用

foo=HELLO
bar=WORLD
foobar=PREFIX_$foo_$bar

因为它似乎掉了$foo,给你留下了:

前缀_世界

但这将起作用:

foobar=PREFIX_"$foo"_"$bar"

并为您提供正确的输出:

前缀HELLO_WORLD

使用引号的最简单方法:

B=Bar
b=bar
var="$B""$b""a"
echo "Hello ""$var"

我解决问题的方法是

$a$b

例如

a="Hello"
b=" World"
c=$a$b
echo "$c"

它产生

Hello World

例如,如果尝试将一个字符串与另一个字符串连接,

a="Hello"
c="$a World"

则echo“$c”将产生

Hello World

具有额外的空间。

$aWorld

不起作用,正如你所想象的,但是

${a}World

生产

HelloWorld