bash 数组 – 如何在 bash 脚本中声明字符串数组

bash 数组 – 如何在 bash 脚本中声明字符串数组

Bash 脚本为您提供了一种自动执行命令行任务的便捷方法。

使用 Bash,您可以执行许多与其他脚本或编程语言相同的操作。您可以创建和使用变量、执行循环、使用条件逻辑以及将数据存储在数组中。

虽然功能可能非常熟悉,但 Bash 的语法可能很棘手。在本文中,您将学习如何声明数组,以及如何在代码中使用它们。

如何在 Bash 中声明数组

在 Bash 中声明数组很容易,但要注意语法。如果您习惯于使用其他语言编程,则代码可能看起来很熟悉,但存在容易忽略的细微差异。

若要声明数组,请按照下列步骤操作:

  1. 为数组命名
  2. 在该变量名称后面加上等号。等号周围不应有任何空格
  3. 将数组括在小括号中(而不是像 JavaScript 中的中括号)
  4. 使用引号键入字符串,但字符串之间没有逗号

数组声明将如下所示:

myArray=("cat" "dog" "mouse" "frog")

就是这样!就是这么简单。

如何在 Bash 中访问数组

有几种不同的方法可以遍历数组。您可以遍历元素本身,也可以遍历索引。

如何循环数组元素

若要遍历数组元素,代码需要如下所示:

for str in ${myArray[@]}; do
  echo $str
done

分解一下:这有点像在 JavaScript 中使用。对于数组 (myArray) 中的每个字符串 (str),打印该字符串。forEach

此循环的输出如下所示:

cat
dog
mouse
frog

注意:方括号中的符号表示您正在循环数组中的所有元素。如果你把它省略掉,只写 ,只会打印数组中的第一个字符串。@``for str in ${myArray}

如何循环数组索引

或者,您可以循环访问数组的索引。这就像 JavaScript 中的循环,当您希望能够访问每个元素的索引时很有用。for

若要使用此方法,代码需要如下所示:

for i in ${!myArray[@]}; do
  echo "element $i is ${myArray[$i]}"
done

输出将如下所示:

element 0 is cat
element 1 is dog
element 2 is mouse
element 3 is frog

注意:变量开头的感叹号表示您正在访问数组的索引,而不是元素本身。如果您习惯于表示否定的感叹号,这可能会令人困惑,因此请特别注意这一点。myArray

另一个注意事项:Bash 通常不需要变量的大括号,但数组需要大括号。所以你会注意到,当你引用一个数组时,你使用的是 语法 ,但当你引用一个字符串或数字时,你只需使用一个美元符号:。${myArray}``$i

结论

Bash 脚本对于创建自动化命令行行为非常有用,而数组是一个很好的工具,可用于存储多个数据。

声明和使用它们并不难,但它与其他语言不同,因此请密切注意避免犯错误。

类似的帖子