You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash脚本中如何实现列表(数组)的常用基础操作?

Bash 列表类操作实现方案

Bash 原生支持一维索引数组,完全可以满足你需要的列表操作需求,以下为各功能的实现示例,兼容 Bash 4.0 及以上版本。
注意:所有涉及数组取值、遍历的操作,建议给${数组名[@]}套双引号,避免元素包含空格时出现拆分异常

1. 创建空列表(空数组)

直接通过空括号初始化即可:

# 方式1:直接初始化空数组
my_list=()

# 方式2:先声明数组类型再初始化
declare -a my_list

2. 向列表中追加元素

使用+=运算符即可实现单个或多个元素追加:

# 追加单个元素
my_list+=("元素1")

# 一次性追加多个元素
my_list+=("元素2" "元素3" "带空格的 元素4")

3. 检查列表是否为空

通过判断数组元素总长度是否为0实现:

if [ ${#my_list[@]} -eq 0 ]; then
    echo "当前列表为空"
else
    echo "当前列表共有 ${#my_list[@]} 个元素"
fi

其中${#my_list[@]}语法用于获取数组的元素总个数。

4. 删除列表中的指定元素

通过遍历筛选非目标元素的方式实现,支持删除所有匹配的指定元素,兼容带空格的元素:

# 定义要删除的目标元素
target="元素2"

# 临时数组存储需要保留的元素
temp_list=()
for elem in "${my_list[@]}"; do
    if [ "$elem" != "$target" ]; then
        temp_list+=("$elem")
    fi
done

# 覆盖原数组完成删除
my_list=("${temp_list[@]}")

5. 索引访问实现「跳转至下一个」逻辑

Bash 数组默认从0开始编号,通过索引加减即可实现跳转,注意提前判断索引合法性:

# 初始化当前访问索引,比如从第1个元素(索引0)开始
current_idx=0

# 计算下一个元素的索引
next_idx=$((current_idx + 1))

# 判断下一个索引是否在合法范围内
if [ $next_idx -lt ${#my_list[@]} ]; then
    # 读取下一个元素
    next_elem=${my_list[$next_idx]}
    echo "下一个元素为:$next_elem"
    # 更新当前索引为下一个索引,完成跳转
    current_idx=$next_idx
else
    echo "已到达列表末尾,无下一个元素"
fi

内容的提问来源于stack exchange,提问作者KansaiRobot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:48:03