在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
当前回答
bla=hello
laber=kthx
echo "${bla}ohai${laber}bye"
将输出
helloohaikthxbye
当$blaohai美元导致变量未找到错误。或者如果字符串中有空格或其他特殊字符。“${foo}”正确地转义您放入其中的任何内容。
其他回答
如果您要做的是将字符串拆分为多行,则可以使用反斜杠:
$ a="hello\
> world"
$ echo $a
helloworld
中间有一个空格:
$ a="hello \
> world"
$ echo $a
hello world
此选项还只在两者之间添加一个空格:
$ a="hello \
> world"
$ echo $a
hello world
您可以在没有引号的情况下进行连接。下面是一个示例:
$Variable1 Open
$Variable2 Systems
$Variable3 $Variable1$Variable2
$echo $Variable3
最后一条语句将打印“OpenSystems”(不带引号)。
这是Bash脚本的示例:
v1=hello
v2=world
v3="$v1 $v2"
echo $v3 # Output: hello world
echo "$v3" # Output: hello world
尽管有特殊的运算符+=用于连接,但有一种更简单的方法:
foo='Hello'
foo=$foo' World'
echo $foo
双引号需要额外的计算时间来解释内部变量。如果可能,请避免。
更安全的方式:
a="AAAAAAAAAAAA"
b="BBBBBBBBBBBB"
c="CCCCCCCCCCCC"
d="DD DD"
s="${a}${b}${c}${d}"
echo "$s"
AAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCDD DD
包含空格的字符串可以成为命令的一部分,请使用“$XXX”和“${XXX}”来避免这些错误。
再看看其他关于+=
var1='hello'
var2='world'
var3=$var1" "$var2
echo $var3