bash 脚本中如何拼接字符串

系统 Linux
下面我们以实际例子介绍一下如何在 bash 中拼接字符串。

在几乎所有编程语言中,字符串连接都是一个很重要的组成部分。

在 bash 中也可以连接字符串,但是 bash 中没有用于字符串拼接的运算符,只需要将字符串一个一个的编写在一起即可。如下所示:

concat_string="$str1$str2"

下面我们以实际例子介绍一下如何在 bash 中拼接字符串。

字符串变量拼接

bash 中没有像其他大多数编程语言中那样的数据类型,但我们仍然可以在 bash 中声明变量。比如我们要声明一个字符串变量:

$'Welcome'

可以使用 printf 命令打印此字符串变量的值:​

$printf "$w\n"Welcome

我们先定义几个字符串变量:​

$'To
'$'Linux'
$'Handbook!'

那怎样将这些字符串拼接起来形成一个新的变量呢?

$"${w} ${t} ${l} ${h}"

通过这种方式,我将所有四个字符串连接到一个变量中,并将其命名为 tony。请注意,我在变量之间添加了一个空格。

然后我们验证一下新的字符串:​

$printf "$tony\n"Welcome To Linux Handbook!

下面是完整的 bash 脚本:​

#!/bin/bash
w='Welcome'
t='To'
l='Linux'
h='Handbook'
tony="${w} ${t} ${l} ${h}"
printf "${tony}\n"

设置其可执行权限,然后执行:​

$ chmod +x concat.sh
$ ./concat.sh
Welcome To Linux Handbook!

在进行字符串拼接时,包裹变量名的花括号 {} 不是必需的。不过为了让代码更易读,最好加上花括号 {}

字符串追加

上面的例子是将多个字符串拼接为一个。那怎样将一串字符追加到某个已存在的字符串中呢?可以使用 += 运算符来实现。如下所示:​

str="iron"
str+="man"

这样,最后 str 的值是什么呢?答案是 ironman。​

$"iron"
$"man"
$echo $str
ironman

当我们在 bash 中使用循环的时候,这会很有用,如下例子:​

#!/bin/bash
var=""
for color in 'Black' 'White' 'Brown' 'Yellow'; do
"${color}
done
echo "$var"

运行上述脚本,其结果如下:

Black

连接数字和字符串

正如我们前文提到的,Bash 中没有数据类型。字符串和整数是相同的,因此它们可以很容易地连接到一个字符串中。

我们用上文中第二个脚本来看另一个示例。这次,我们用一个数字:​

#!/bin/bash
we='We'
lv='Love'
y='You'
morgan=3000
stark="${we} ${lv} ${y} ${morgan}!!!"
printf "${stark}\n"

执行:​

$ chmod +x ​morgan.sh​​
$ ./morgan.sh
We Love You 3000!!!

字符串的嵌套拼接

上面例子中我们得到了两个连接后的字符串,也可以将这两个字符串嵌套拼接,存储在第三个字符串中。如下面脚本所示:​

#!/bin/bash
w='Welcome'
t='To'
l='Linux'
h='Handbook'
tony="${w} ${t} ${l} ${h}"
we='We'
lv='Love'
y='You'
morgan=3000
stark="${we} ${lv} ${y} ${morgan}!!!"
ironman="${tony}..${stark}"
printf "${ironman} Forever!\n"

下面是执行结果:

Welcome To Linux Handbook..We Love You 3000!!! Forever!
责任编辑:庞桂玉 来源: TIAP
相关推荐

2022-12-06 08:27:50

Bash脚本字符串

2017-12-11 13:50:17

LinuxBash子字符串

2023-01-09 09:52:06

Bash字符串

2021-05-31 07:57:00

拼接字符串Java

2019-12-25 15:41:50

JavaScript程序员编程语言

2011-07-11 16:00:22

字符串拼接

2022-12-08 12:05:03

Bash字符串

2019-02-27 09:08:20

Java 8StringJoineIDEA

2022-05-10 09:47:10

Bash字符串Linux

2022-11-24 08:01:57

bash脚本字符串

2021-10-31 23:01:50

语言拼接字符串

2013-06-24 15:16:29

Java字符串拼接

2021-06-11 18:08:00

Java字符串拼接

2016-12-27 09:46:55

Java 8StringBuild

2017-01-19 11:26:55

Java 8StringBuild

2011-07-11 15:36:44

JavaScript

2021-03-11 18:44:39

字符串SQL表达式

2010-10-09 11:43:10

MYSQL字符串

2023-10-31 18:57:02

Java字符串

2021-12-10 08:17:48

字符串拼接场景
点赞
收藏

51CTO技术栈公众号