安卓系统

重击数组

VL53L1X Time-of-Flight 400cm Laser distance sensor - Demonstration Software

VL53L1X Time-of-Flight 400cm Laser distance sensor - Demonstration Software

目录:

Anonim

数组是最常用的基本数据结构之一。 您可以认为数组是一个可以在其中存储多个变量的变量。

,我们将介绍Bash数组,并说明如何在Bash脚本中使用它们。

重击数组

Bash支持一维数字索引和关联数组类型。 数字数组使用整数引用,而关联数组使用字符串引用。

可以使用负索引从末尾访问数字索引数组,索引 -1 表示最后一个元素。 索引不必是连续的。

与大多数编程语言不同,Bash数组元素不必具有相同的数据类型。 您可以创建一个同时包含字符串和数字的数组。

Bash不支持多维数组,并且不能同时包含数组元素。

数组中可以存储的最大元素数没有限制。

创建Bash数组

Bash中的数组可以用不同的方式初始化。

创建数字索引数组

Bash变量是无类型的,任何变量都可以在不声明的情况下用作索引数组。

要显式声明数组,请使用内置的声明:

declare -a array_name

创建索引数组的一种方法是使用以下形式:

array_name=value_1 array_name=value_2 array_name=value_n

其中 index_* 是一个正整数。

创建数字数组的另一种方法是在括号内指定元素列表,并用空格隔开:

array_name=(element_1 element_2 element_N)

使用上面的形式创建数组时,索引从零开始,即第一个元素的索引为 0

创建关联数组

与数字索引不同,必须先声明关联数组,然后才能使用它们。

要声明一个关联数组,请使用带 -A (大写)选项的 declare 内置函数:

declare -A array_name

可以使用以下形式创建关联数组:

declare -A array_name array_name=value_foo array_name=value_bar array_name=value_xyz

其中 index_* 可以是任何字符串。

您还可以使用以下形式创建关联数组:

declare -A array_name array_name=(=value_foo =value_bar =value_xyz)

阵列运算

Bash数组语法起初可能看起来有些奇怪,但是一旦您阅读本文,它就会变得更有意义。

参考元素

要引用单个元素,您需要知道元素索引。

可以使用以下语法引用任何元素:

${array_name} 访问数组元素的语法与大多数编程语言的语法相似。 需要使用花括号 ${} 来避免shell的文件名扩展运算符。

让我们打印索引为 1 的元素:

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print element echo ${my_array}

Helium

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium

@ * 之间的唯一区别是 ${my_array} 格式用双引号引起来。 在这种情况下, * 扩展为单个单词,其中数组元素之间用空格分隔。 @ 将每个数组元素扩展为一个单独的单词。 当使用表格来遍历数组元素时,这一点尤其重要。

要打印数组的键,请添加 ! 数组名称前的运算符:

${!array_name}

这是一个例子:

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${!my_array}"

0 1 2 3

阵列长度

要获取数组的长度,请使用以下形式:

${#array_name} 语法与引用所有元素(在数组名称前添加 # 字符)相同。

## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## array Length echo ${#my_array}

4

遍历数组

遍历数组中每个项目的最常见方法是使用for循环:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${my_array}" do echo "$i" done

上面的代码将遍历数组,并在新行中打印每个元素:

Hydrogen Helium Lithium Beryllium

这是如何打印所有键和值的示例:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${!my_array}" do echo "$i" "${my_array}" done

0 Hydrogen 1 Helium 2 Lithium 3 Beryllium

遍历数组的另一种方法是获取数组的长度并使用 C style 循环:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") # Length of the array length=${#my_array} # Array Loop for ((i=0; i < ${length}; i++)) do echo $i ${my_array} done

0 Hydrogen 1 Helium 2 Lithium 3 Beryllium

添加一个新元素

要将新元素添加到bash数组并指定其索引,请使用以下形式:

my_array="New Element"

这是一个例子:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new element my_array="Aluminum" ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium Aluminum

在不指定索引的情况下将新元素添加到数组的另一种方法是使用 += 运算符。 您可以添加一个或多个元素:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new elements my_array+=(Cobalt Nickel) ## print all elements echo "${my_array}"

Hydrogen Helium Lithium Beryllium Cobalt Nickel

删除元素

要删除单个元素,您需要知道元素索引。 可以使用 unset 命令删除元素:

unset my_array

让我们来看一个例子:

declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## remove element unset my_array ## print all elements echo "${my_array}"

Hydrogen Helium Beryllium

结论

我们已经解释了如何创建数字索引和关联数组。 我们还展示了如何遍历数组,计算数组长度以及添加和删除元素。

bash终端