@geekpi
https://linux.cn/article-16016-1.html
This commit is contained in:
Xingyu Wang 2023-07-20 15:04:25 +08:00
parent edcf4ac11c
commit 37ad1d1444

View File

@ -3,13 +3,17 @@
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
[#]: collector: "lkxed" [#]: collector: "lkxed"
[#]: translator: "geekpi" [#]: translator: "geekpi"
[#]: reviewer: " " [#]: reviewer: "wxy"
[#]: publisher: " " [#]: publisher: "wxy"
[#]: url: " " [#]: url: "https://linux.cn/article-16016-1.html"
Bash 基础知识系列 #5:在 Bash 中使用数组 Bash 基础知识系列 #5:在 Bash 中使用数组
====== ======
![][0]
> 本章将介绍如何在 Bash Shell 脚本中使用数组。学习添加元素、删除元素和获取数组长度。
在本系列的前面部分中,你了解了变量。变量中可以有单个值。 在本系列的前面部分中,你了解了变量。变量中可以有单个值。
数组内部可以有多个值。当你必须一次处理多个变量时,这会使事情变得更容易。你不必将各个值存储在新变量中。 数组内部可以有多个值。当你必须一次处理多个变量时,这会使事情变得更容易。你不必将各个值存储在新变量中。
@ -34,7 +38,7 @@ distros=(Ubuntu Fedora SUSE "Arch Linux" Nix)
那挺好的。让我们看看如何访问数组元素。 那挺好的。让我们看看如何访问数组元素。
### 在 bash 中访问数组元素 ### 在 Bash 中访问数组元素
使用索引(数组中的位置)访问数组元素。要访问索引 N 处的数组元素,请使用: 使用索引(数组中的位置)访问数组元素。要访问索引 N 处的数组元素,请使用:
@ -42,7 +46,7 @@ distros=(Ubuntu Fedora SUSE "Arch Linux" Nix)
${array_name[N]} ${array_name[N]}
``` ```
> 💡 与大多数其他编程语言一样Bash shell 中的数组从索引 0 开始。这意味着第一个元素的索引为 0第二个元素的索引为 1`第 n 个`元素的索引为 `n-1` > 💡 与大多数其他编程语言一样Bash Shell 中的数组从索引 0 开始。这意味着第一个元素的索引为 0第二个元素的索引为 1第 n 个元素的索引为 `n-1`
因此,如果你想打印 SUSE你将使用 因此,如果你想打印 SUSE你将使用
@ -58,7 +62,7 @@ echo ${distros[2]}
假设你要打印数组的所有元素。 假设你要打印数组的所有元素。
你可以一一使用 echo `${array[n]}` 但这确实没有必要。有一个更好更简单的方法: 你可以一一使用 `echo ${array[n]}` 但这确实没有必要。有一个更好更简单的方法:
``` ```
${array[*]} ${array[*]}
@ -68,9 +72,9 @@ ${array[*]}
![Accessing all array elements at once in bash shell][2] ![Accessing all array elements at once in bash shell][2]
### 在 bash 中获取数组长度 ### 在 Bash 中获取数组长度
如何知道数组中有多少个元素? 有一个专门的方法[在 Bash 中获取数组长度][3] 如何知道数组中有多少个元素? 有一个专门的方法 [在 Bash 中获取数组长度][3]
``` ```
${#array_name[@]} ${#array_name[@]}
@ -80,9 +84,9 @@ ${#array_name[@]}
![Get array length in bash][4] ![Get array length in bash][4]
### 在 bash 中添加数组元素 ### 在 Bash 中添加数组元素
如果必须向数组添加其他元素,请使用 `+=` 运算符[将元素追加到 bash 中的现有数组][5] 如果必须向数组添加其他元素,请使用 `+=` 运算符 [将元素追加到 Bash 中的现有数组][5]
``` ```
array_name+=("new_value") array_name+=("new_value")
@ -108,7 +112,7 @@ array_name[N]=new_value
### 删除数组元素 ### 删除数组元素
你可以使用内置的 `unset` shell 通过提供索引号来删除数组元素: 你可以使用 Shell 内置的 `unset` 通过提供索引号来删除数组元素:
``` ```
unset array_name[N] unset array_name[N]
@ -128,13 +132,13 @@ unset array_name
### 🏋️ 练习时间 ### 🏋️ 练习时间
让我们练习一下你所学到的有关 bash 数组的知识。 让我们练习一下你所学到的有关 Bash 数组的知识。
**练习 1**:创建一个 bash 脚本,其中包含五个最佳 Linux 发行版的数组。全部打印出来。 **练习 1**:创建一个 Bash 脚本,其中包含五个最佳 Linux 发行版的数组。全部打印出来。
现在,用 Hannah Montanna Linux 替换中间的选择。 现在,用 Hannah Montanna Linux 替换中间的选择。
**练习 2**:创建一个 bash 脚本,该脚本接受用户提供的三个数字,然后以相反的顺序打印它们。 **练习 2**:创建一个 Bash 脚本,该脚本接受用户提供的三个数字,然后以相反的顺序打印它们。
预期输出: 预期输出:
@ -144,7 +148,9 @@ Enter three numbers and press enter
Numbers in reverse order are: 44 23 12 Numbers in reverse order are: 44 23 12
``` ```
我希望你喜欢通过本系列学习 bash shell 脚本。在下一章中,你将学习如何使用 if-else。敬请关注。 我希望你喜欢通过本系列学习 Bash Shell 脚本。在下一章中,你将学习如何使用 `if-else`。敬请关注。
*题图MJ/09477e2f-2bf9-4fdf-bc1e-c894a068adf2*
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
@ -153,7 +159,7 @@ via: https://itsfoss.com/bash-arrays/
作者:[Abhishek Prakash][a] 作者:[Abhishek Prakash][a]
选题:[lkxed][b] 选题:[lkxed][b]
译者:[geekpi](https://github.com/geekpi) 译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID) 校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
@ -167,3 +173,4 @@ via: https://itsfoss.com/bash-arrays/
[6]: https://itsfoss.com/content/images/2023/07/append-element-to-array.png [6]: https://itsfoss.com/content/images/2023/07/append-element-to-array.png
[7]: https://itsfoss.com/content/images/2023/07/add-array-element-bash-1.png [7]: https://itsfoss.com/content/images/2023/07/add-array-element-bash-1.png
[8]: https://itsfoss.com/content/images/2023/07/delete-array-element-bash.png [8]: https://itsfoss.com/content/images/2023/07/delete-array-element-bash.png
[0]: https://img.linux.net.cn/data/attachment/album/202307/20/150302ttfmzchutthfcncm.jpg