shell脚本中对数组的操作汇总

方法用例备注
创建数组
arr=(val_1 val_2 val_3)
数组间的元素以空格分割。
创建空数组
arr_new=()
访问数组
arr=(val_1 val_2 val_3)
echo "${arr[0]}"
数组的索引从“0”开始,在这个例子中,脚本会输出“val_1”。
访问数组的长度
arr=(val_1 val_2 val_3)
echo "${arr[@]}"
在这个例子中,脚本会输出“3”。
遍历数组
arr=(val_1 val_2 val_3)
for item in "${arr[@]}"; do
echo "$item"
done
在这个例子中,脚本会依次输出:val_1 val_2 val_3
添加元素
arr=(val_1 val_2 val_3)
arr[4]="val_4"
通过索引在指定位置定义。
追加元素
arr=(val_1 val_2 val_3)
arr+=("val_4")
相当于拼接了一个单元素的数组。
删除数组元素与数组
arr=(val_1 val_2 val_3)
unset arr[1]
unset arr
通过索引删除数组元素,不需要$符号。
数组切片
arr=(val_1 val_2 val_3)
echo "${arr[@]:1:1}"
类似字符串切片,在这个例子中,脚本会输出“val_2”
拼接数组
arr=(val_1 val_2 val_3)
arr_2=(val_4 val_5 val_6)
arr_3=(val_7 val_8 val_9)
arr+=("${arr_2[@]}""${arr_3[@]}")
使用字符串索引
declare -A arr=(
[key_1]=val_1
[key_2]=val_2
[key_3]=val_3
)
数组间的元素以空格分割。
使用数组作为函数的实参
# 在函数中使用数组作为参数
function print_array {
local arr=("$@") # 将参数转换为数组
for item in "${arr[@]}"; do
echo "$item"
done
}
# 调用函数并传递数组作为参数
array=("apple" "banana" "orange")
print_array "${array[@]}"
在函数外,将数组分割为多个参数;在函数内,再将若干参数组合成一个数组,总之是种闲得蛋疼的实现方式。

如果有遗漏的地方,还请在评论区指出。

posted @   之于言者  阅读(59)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)
点击右上角即可分享
微信分享提示