Linux 如何向数组中追加和删除元素

作者:袖梨 2026-09-02

Linux Shell数组支持动态增删元素,追加常用+=语法,插入需手动重组,删除用unset留空槽,清空可用unset arr或arr=()。

Linux Shell 中的数组支持动态增删元素,操作简单但需注意语法细节。追加和删除都基于索引或整体结构,不涉及类型限制,也不需要预先声明大小。

向数组末尾追加单个或多个元素

最常用的是 += 语法,直接在原数组后添加新值:

  1. arr+=(new_item) —— 追加一个元素
  2. arr+=(item1 item2 item3) —— 一次追加多个元素
  3. arr=("${arr[@]}" extra1 extra2) —— 等效写法,显式拼接,适合兼容性要求高的场景

向指定位置插入或覆盖元素

Shell 数组不提供“中间插入”原生命令,但可通过下标赋值实现覆盖或占位:

  1. arr[5]="value" —— 若索引 5 原来为空,就相当于“插入”;若已有值,则覆盖
  2. 要真正插入(其他元素后移),需手动重组数组,例如:

    arr=("${arr[@]:0:2}" "new" "${arr[@]:2}") 表示在索引 2 前插入

删除单个数组元素

使用 unset 清除指定索引的元素,该位置变为空槽(不是自动前移):

  1. unset arr[2] —— 删除第 3 个元素(索引从 0 开始)
  2. 删除后,${arr[@]} 输出会跳过该位置,但 ${!arr[@]} 显示的下标仍包含缺口

清空整个数组或彻底重置

两种常见需求对应不同操作:

  1. unset arr —— 完全删除数组变量,后续引用为未定义
  2. arr=() —— 清空内容但保留变量名,长度变为 0,可继续追加

相关文章

精彩推荐