数组基础 #

一、数组定义 #

1.1 定义方式 #

bash
#!/bin/bash

# 方式一:括号定义
arr=(1 2 3 4 5)

# 方式二:逐个赋值
arr[0]=1
arr[1]=2
arr[2]=3

# 方式三:declare声明
declare -a arr
arr=(a b c)

# 方式四:从命令输出
arr=($(ls))

1.2 数组特点 #

bash
#!/bin/bash

# 数组索引从0开始
arr=(a b c d e)
echo ${arr[0]}  # 输出: a
echo ${arr[4]}  # 输出: e

# 数组可以不连续
arr[0]=a
arr[5]=f
arr[10]=k
echo "数组长度: ${#arr[@]}"  # 输出: 3

二、数组访问 #

2.1 访问元素 #

bash
#!/bin/bash

arr=(apple banana cherry)

# 访问单个元素
echo ${arr[0]}      # 输出: apple
echo ${arr[2]}      # 输出: cherry

# 访问所有元素
echo ${arr[@]}      # 输出: apple banana cherry
echo ${arr[*]}      # 输出: apple banana cherry

# 使用负索引(Bash 4.3+)
echo ${arr[-1]}     # 输出: cherry
echo ${arr[-2]}     # 输出: banana

2.2 数组长度 #

bash
#!/bin/bash

arr=(a b c d e)

# 数组长度
echo ${#arr[@]}     # 输出: 5
echo ${#arr[*]}     # 输出: 5

# 单个元素长度
echo ${#arr[0]}     # 输出: 1

# 字符串元素长度
str_arr=("hello" "world")
echo ${#str_arr[0]} # 输出: 5

三、数组操作 #

3.1 添加元素 #

bash
#!/bin/bash

arr=(a b c)

# 追加元素
arr+=(d e)
echo ${arr[@]}      # 输出: a b c d e

# 指定位置添加
arr[5]=f
echo ${arr[@]}      # 输出: a b c d e f

# 使用+=添加多个
arr+=(g h i)
echo ${arr[@]}

3.2 删除元素 #

bash
#!/bin/bash

arr=(a b c d e)

# 删除单个元素
unset arr[2]
echo ${arr[@]}      # 输出: a b d e

# 删除整个数组
unset arr
echo ${arr[@]}      # 空

3.3 数组切片 #

bash
#!/bin/bash

arr=(a b c d e f g)

# 切片
echo ${arr[@]:2:3}  # 输出: c d e
echo ${arr[@]:0:3}  # 输出: a b c
echo ${arr[@]:4}    # 输出: e f g

四、数组遍历 #

4.1 遍历元素 #

bash
#!/bin/bash

arr=(apple banana cherry)

# 方式一:for in
for item in "${arr[@]}"; do
    echo "水果: $item"
done

# 方式二:使用索引
for (( i=0; i<${#arr[@]}; i++ )); do
    echo "arr[$i] = ${arr[$i]}"
done

# 方式三:获取索引
for index in "${!arr[@]}"; do
    echo "索引 $index: ${arr[$index]}"
done

五、总结 #

5.1 数组操作速查 #

操作 语法
定义 arr=(a b c)
访问 $
所有元素 $
长度 $
添加 arr+=(d e)
删除 unset arr[index]
切片 $

5.2 下一步 #

你已经掌握了数组基础,接下来让我们学习 数组操作

最后更新:2026-03-27