📜  拆分字符串并创建数组 bash - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:10:06.934000             🧑  作者: Mango

拆分字符串并创建数组 bash - Shell-Bash

Bash 是一种 Unix shell,是许多 UNIX 系统的默认 shell。Bash 是 Bourne-Again SHell 的缩写,是 sh 的一种扩展版本。

在 Bash 中,我们可以使用数组来存储一系列的数据。拆分字符串并创建数组在 Bash 中是一个非常常见的任务,今天我们将重点讨论如何使用 Bash 拆分字符串并创建数组。

代码实现

让我们来看一个例子,首先我们定义一个包含逗号分隔的字符串:

string="apple,banana,orange"

然后我们将这个字符串拆分,并创建一个数组:

IFS=',' read -ra array <<< "$string"

这个命令中,我们使用了 IFS 变量。IFS 是 Bash 的内置变量,它定义了在读取输入时要使用的分隔符。在这个例子中,我们将 IFS 设置为 ,。然后我们使用 read 命令并将其与 -a 选项一起使用来创建一个数组。

最后,我们将 $string 中的值输入到 <<< 中,这是 Bash 中的 Here String 的一种形式。这使我们能够将输入传递给 read 命令。

现在我们可以输出这个数组中的元素:

for i in "${array[@]}"
do
  echo $i
done

这个命令将循环数组中的每个元素,并输出它们。

改进代码

有时字符串中的空格也被认为是分隔符,可以用下面的改进代码解决:

string="apple, banana, orange"
IFS=', ' read -ra array <<< "$string"

for i in "${array[@]}"
do
  echo $i
done

这里我们使用 , ,注意空格(即逗号+一个空格)作为分隔符。现在,这个数组中的每个元素都不包含空格。

结论

拆分字符串并创建数组在 Bash 中是非常简单的。你只需要使用 IFS 变量定义分隔符,然后使用 read 命令创建数组,就可以对数组进行操作了。

希望本文能对你有所帮助!