在Bash中连接变量

Dan*_*all 45 bash shell string-concatenation

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

$mystring = $arg1 . '12' . $arg2 . 'endoffile';
Run Code Online (Sandbox Code Playgroud)

所以输出可能是20121201endoffile,我如何在linux bash脚本中实现相同的功能呢?

Gil*_*not 89

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

mystring="${arg1}12${arg2}endoffile"
Run Code Online (Sandbox Code Playgroud)

说明

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

mystring="$arg112$arg2endoffile"
Run Code Online (Sandbox Code Playgroud)

括号是需要时变量的分隔符.如果不需要,您可以使用或不使用.

另一种方案

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

$ arg1=foo
$ arg2=bar
$ mystring="$arg1"
$ mystring+="12"
$ mystring+="$arg2"
$ mystring+="endoffile"
$ echo "$mystring"
foo12barendoffile
Run Code Online (Sandbox Code Playgroud)

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

  • 使用花括号作为定界符是一个超级有用的提示,谢谢! (2认同)