Contents

在Bash中连接字符串变量

1. 概述

在这个快速教程中,我们将探讨如何在 shell 脚本中连接字符串变量。

2. Bash 中的 += 运算符

Bash 是 Linux 中广泛使用的 shell,它支持“ += ”运算符连接两个变量

一个例子可以快速解释这个运算符:

$ myVar="Hello"
$ myVar+=" World" 
$ echo $myVar
Hello World

如上例所示,在 Bash 中,我们可以轻松地使用 += 运算符来连接字符串变量。

Bash 的 += 与其他编程语言(如 Java)中的复合运算符 非常相似。但是,我们应该注意,当我们处理数字时,Bash 的 += 运算符的行为有所不同。

再次,让我们通过一个例子来理解它:

$ myNum=100
$ myNum+=200

这一次,我们首先将值100分配给变量myNum。然后,我们使用 += 运算符将另一个值200 “添加”到变量中。因此,我们可以预期myNum变量现在的值是300

但是,如果我们检查 myNum变量的值,结果可能会让我们感到惊讶:

$ echo $myNum 
100200

正如我们在上面的输出中看到的,Bash 将值视为字符串。如果我们想计算两个整数的和并将结果分配给变量 myNum我们可以使用 += 运算符和 Bash 的算术扩展

$ myNum=100
$ ((myNum+=200))
$ echo $myNum 
300

Bash 的 *+=*运算符对于连接字符串变量和一次性应用赋值非常方便。但是,如果我们想加入多个变量,它就不是最好的选择。此外,如果我们的 shell 不是 Bash,我们的 shell 可能不支持 += 运算符。

那么,接下来,让我们看看在 shell 脚本中字符串连接的更通用的解决方案。

3. 在 POSIX Shell 中连接字符串变量

在 shell 编程中,我们可以使用参数扩展 来连接变量。

让我们看一个例子:

$ var1=hello
$ var2=and
$ var3=bye
$ var4="${var1} ${var2} ${var3}"
$ echo $var4
hello and bye

正如我们在上面的示例中看到的,我们使用参数扩展连接了三个变量的值。