关于shell:在bash中连接变量

Concatenating variables in Bash

本问题已经有最佳答案,请猛点这里访问。

毫无疑问,这是一个愚蠢的问题,我正试图在变量中间添加一个变量,因此,例如在PHP中,我会这样做:

1
$mystring = $arg1 . '12' . $arg2 . 'endoffile';

所以输出可能是20121201endoffile,如何在Linuxbash脚本中实现相同的输出?


尝试这样做,在bash中没有特殊的字符可以连接:

1
mystring="${arg1}12${arg2}endoffile"

解释

如果不加括号,您将要求bash连接$arg112 + $argendoffile(我想这不是您要求的),如下例所示:

1
mystring="$arg112$arg2endoffile"

括号是变量的分隔符(如果需要)。不需要的时候,你可以用也可以不用。

另一种解决方案(不太便携:需要bash>3.1)

1
2
3
4
5
6
7
8
$ arg1=foo
$ arg2=bar
$ mystring="$arg1"
$ mystring+="12"
$ mystring+="$arg2"
$ mystring+="endoffile"
$ echo"$mystring"
foo12barendoffile

参见http://mywiki.wooledge.org/bashfaq/013