bash - 在 Bash 中连接变量

标签 bash shell string-concatenation

<分区>

我正在尝试将一个变量添加到一个变量的中间,所以例如在 PHP 中我会这样做:

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

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

最佳答案

尝试这样做,在 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

关于bash - 在 Bash 中连接变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14325722/

相关文章:

linux - 重命名多个文件?

linux - 如何编写 shell 脚本来搜索目录列表中的文本

linux - 如何从 Scala 执行内置的 shell

lua - 将变量连接成文字字符串

sql - Oracle SQL - 如何在一行中显示一对多关系?

bash - 带有 sed 的 grep 管道

linux - Crunch 生成特定字典

linux - 使用管道时如何在没有警告的情况下使用 zcat

linux - 如何在使用 linux shell 时过滤多个文件并消除重复条目以选择单个条目

字符串常量的 C# 编译时连接