在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
当前回答
我更喜欢使用花括号${}来扩展字符串中的变量:
foo="Hello"
foo="${foo} World"
echo $foo
> Hello World
卷曲括号将适合连续字符串用法:
foo="Hello"
foo="${foo}World"
echo $foo
> HelloWorld
否则,使用foo=“$fooWorld”将不起作用。
其他回答
我更喜欢使用花括号${}来扩展字符串中的变量:
foo="Hello"
foo="${foo} World"
echo $foo
> Hello World
卷曲括号将适合连续字符串用法:
foo="Hello"
foo="${foo}World"
echo $foo
> HelloWorld
否则,使用foo=“$fooWorld”将不起作用。
还有一种方法。。。
> H="Hello "
> U="$H""universe."
> echo $U
Hello universe.
…还有另一个。
> H="Hello "
> U=$H"universe."
> echo $U
Hello universe.
您可以在没有引号的情况下进行连接。下面是一个示例:
$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
我有点喜欢做一个快速的功能。
#! /bin/sh -f
function combo() {
echo $@
}
echo $(combo 'foo''bar')
还有一种剥猫皮的方法。这一次有功能:D
有一种特殊情况需要注意:
user=daniel
cat > output.file << EOF
"$user"san
EOF
将输出“daniel”san,而不是danielsan,正如您可能希望的那样。在这种情况下,您应该改为:
user=daniel
cat > output.file << EOF
${user}san
EOF