Concatenating variables in Bash
本问题已经有最佳答案,请猛点这里访问。
毫无疑问,这是一个愚蠢的问题,我正试图在变量中间添加一个变量,因此,例如在PHP中,我会这样做:
1 | $mystring = $arg1 . '12' . $arg2 . 'endoffile'; |
所以输出可能是
尝试这样做,在bash中没有特殊的字符可以连接:
1 | mystring="${arg1}12${arg2}endoffile" |
解释
如果不加括号,您将要求bash连接
1 | mystring="$arg112$arg2endoffile" |
括号是变量的分隔符(如果需要)。不需要的时候,你可以用也可以不用。
另一种解决方案(不太便携:需要
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