Skip to content

数组(array)

定义数组

你可以使用以下语法来定义Bash数组:

bash
# 使用空格分隔的值定义数组  
array_name=(value1 value2 value3 ...)  
  
# 或者,你可以逐个赋值  
array_name[0]="value1"  
array_name[1]="value2"  
array_name[2]="value3"  
# ...

访问数组元素

要访问数组中的元素,你可以使用${array_name[index]}的语法:

bash
# 访问第一个元素  
echo ${array_name[0]}  
  
# 访问第二个元素  
echo ${array_name[1]}  
# ...

获取数组长度

你可以使用${#array_name[@]}${#array_name[*]}来获取数组的长度(即元素的数量):

bash
length=${#array_name[@]}  
echo $length

遍历数组

你可以使用for循环来遍历数组的所有元素:

bash
for element in "${array_name[@]}"; do  
    echo $element  
done

注意,当你使用"${array_name[@]}"时,每个数组元素都被当作一个独立的项来处理,这有助于保持包含空格或特殊字符的元素的完整性。

数组切片

Bash也支持数组的切片,这意味着你可以获取数组的一部分:

bash
# 获取从索引1到索引3的元素(不包括索引3)  
sub_array=(${array_name[@]:1:3})  
  
# 打印切片  
for element in "${sub_array[@]}"; do  
    echo $element  
done

删除数组元素

Bash没有直接删除数组元素的命令,但你可以通过将元素设置为空字符串或将其他元素向前移动来“删除”它们。如果你需要完全删除数组,可以将数组名设置为空:

bash
# 删除整个数组  
unset array_name