在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
当前回答
您可以在没有引号的情况下进行连接。下面是一个示例:
$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
其他回答
更安全的方式:
a="AAAAAAAAAAAA"
b="BBBBBBBBBBBB"
c="CCCCCCCCCCCC"
d="DD DD"
s="${a}${b}${c}${d}"
echo "$s"
AAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCDD DD
包含空格的字符串可以成为命令的一部分,请使用“$XXX”和“${XXX}”来避免这些错误。
再看看其他关于+=
我想从列表中创建一个字符串。找不到答案,所以我把它贴在这里。以下是我所做的:
list=(1 2 3 4 5)
string=''
for elm in "${list[@]}"; do
string="${string} ${elm}"
done
echo ${string}
然后得到以下输出:
1 2 3 4 5
这是通过AWK的:
$ foo="Hello"
$ foo=$(awk -v var=$foo 'BEGIN{print var" World"}')
$ echo $foo
Hello World
我更喜欢使用花括号${}来扩展字符串中的变量:
foo="Hello"
foo="${foo} World"
echo $foo
> Hello World
卷曲括号将适合连续字符串用法:
foo="Hello"
foo="${foo}World"
echo $foo
> HelloWorld
否则,使用foo=“$fooWorld”将不起作用。
Bash还支持一个+=运算符,如以下代码所示:
A="X Y"
A+=" Z"
echo "$A"
输出
X Y Z轴