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

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

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

这是如何在Bash中实现的?


当前回答

这是通过AWK的:

$ foo="Hello"
$ foo=$(awk -v var=$foo 'BEGIN{print var" World"}')
$ echo $foo
Hello World

其他回答

我在方便的时候这样做:使用内联命令!

echo "The current time is `date`"
echo "Current User: `echo $USER`"

我想从列表中创建一个字符串。找不到答案,所以我把它贴在这里。以下是我所做的:

list=(1 2 3 4 5)
string=''

for elm in "${list[@]}"; do
    string="${string} ${elm}"
done

echo ${string}

然后得到以下输出:

1 2 3 4 5

我解决问题的方法是

$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
foo="Hello "
foo="$foo World"

     

更安全的方式:

a="AAAAAAAAAAAA"
b="BBBBBBBBBBBB"
c="CCCCCCCCCCCC"
d="DD DD"
s="${a}${b}${c}${d}"
echo "$s"
AAAAAAAAAAAABBBBBBBBBBBBCCCCCCCCCCCCDD DD

包含空格的字符串可以成为命令的一部分,请使用“$XXX”和“${XXX}”来避免这些错误。

再看看其他关于+=