51

毫无疑问,愚蠢的问题,我试图将一个变量添加到一个变量的中间,所以例如在 PHP 中我会这样做:

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

所以输出可能是20121201endoffile,我怎样才能在 linux bash 脚本中实现相同的目标?

4

1 回答 1

91

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

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

解释

如果你不放括号,你会要求连接$arg112 + $argendoffile(我猜这不是你问的),如下例所示:

mystring="$arg112$arg2endoffile"

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

另一种解决方案

(不太便携:需要bash> 3.1)

$ arg1=foo
$ arg2=bar
$ mystring="$arg1"
$ mystring+="12"
$ mystring+="$arg2"
$ mystring+="endoffile"
$ echo "$mystring"
foo12barendoffile

http://mywiki.wooledge.org/BashFAQ/013

于 2013-01-14T20:01:44.027 回答