数组基础 #
一、数组定义 #
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