在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
在PHP中,字符串按如下方式连接在一起:
$foo = "Hello";
$foo .= " World";
在这里,$foo变成了“Hello World”。
这是如何在Bash中实现的?
当前回答
请注意,这不会起作用
foo=HELLO
bar=WORLD
foobar=PREFIX_$foo_$bar
因为它似乎掉了$foo,给你留下了:
前缀_世界
但这将起作用:
foobar=PREFIX_"$foo"_"$bar"
并为您提供正确的输出:
前缀HELLO_WORLD
其他回答
这是通过AWK的:
$ foo="Hello"
$ foo=$(awk -v var=$foo 'BEGIN{print var" World"}')
$ echo $foo
Hello World
请注意,这不会起作用
foo=HELLO
bar=WORLD
foobar=PREFIX_$foo_$bar
因为它似乎掉了$foo,给你留下了:
前缀_世界
但这将起作用:
foobar=PREFIX_"$foo"_"$bar"
并为您提供正确的输出:
前缀HELLO_WORLD
我想从列表中创建一个字符串。找不到答案,所以我把它贴在这里。以下是我所做的:
list=(1 2 3 4 5)
string=''
for elm in "${list[@]}"; do
string="${string} ${elm}"
done
echo ${string}
然后得到以下输出:
1 2 3 4 5
在我看来,连接两个字符串的最简单方法是编写一个函数,然后使用该函数。
function concat ()
{
prefix=$1
suffix=$2
echo "${prefix}${suffix}"
}
foo="Super"
bar="man"
concat $foo $bar # Superman
alien=$(concat $foo $bar)
echo $alien # Superman
尽管有特殊的运算符+=用于连接,但有一种更简单的方法:
foo='Hello'
foo=$foo' World'
echo $foo
双引号需要额外的计算时间来解释内部变量。如果可能,请避免。