在编写 Linux Shell 脚本时,数组是一个非常实用但常被忽视的功能。尤其对于初学者来说,了解如何正确使用 Linux Shell数组 可以极大提升脚本的灵活性和效率。本文将带你从零开始,逐步掌握 Shell脚本编程 中数组的定义、操作和最佳实践。

在 Bash(Linux 默认 Shell)中,数组是一种可以存储多个值的数据结构。Bash 支持一维索引数组(类似列表)和关联数组(类似字典,键值对)。
你可以通过以下几种方式定义一个索引数组:
# 方法1:逐个赋值fruits[0]="apple"fruits[1]="banana"fruits[2]="cherry"# 方法2:一次性声明fruits=("apple" "banana" "cherry")# 方法3:使用 declare 声明(推荐用于明确类型)declare -a fruits=("apple" "banana" "cherry")关联数组使用字符串作为键:
# 必须使用 declare -A 声明declare -A user_infouser_info[name]="Alice"user_info[age]=30user_info[city]="Beijing"# 或者一次性声明declare -A user_info=([name]="Alice" [age]=30 [city]="Beijing")访问索引数组中的元素:
echo ${fruits[0]} # 输出 appleecho ${fruits[1]} # 输出 banana访问所有元素:
echo ${fruits[@]} # 输出所有元素(推荐)echo ${fruits[*]} # 效果类似,但在某些场景下行为不同访问关联数组:
echo ${user_info[name]} # 输出 Aliceecho ${#fruits[@]} # 输出 3echo ${#user_info[@]} # 输出 3(关联数组同样适用)for fruit in "${fruits[@]}"; do echo "Fruit: $fruit"donefor key in "${!user_info[@]}"; do echo "$key: ${user_info[$key]}"done注意: 使用
"${array[@]}"而不是$array,前者能正确处理包含空格的元素,是 Bash数组最佳实践 的关键之一。
你可以提取部分元素(切片):
# 从索引1开始取2个元素echo ${fruits[@]:1:2} # 输出 banana cherry向数组追加元素:
fruits+=("date" "elderberry")unset fruits[1] # 删除索引为1的元素unset fruits # 删除整个数组for i in ${array[@]} → ✅ 应写为 for i in "${array[@]}"${array[*]} 遍历含空格的元素 → ✅ 优先使用 ${array[@]}#!/bin/bash,确保使用 Bash 而非 sh(sh 不支持数组)declare -a 或 declare -A 显式声明数组类型,提高可读性掌握 Shell数组操作 是编写高效、健壮 Shell 脚本的重要一步。无论是处理日志文件、批量重命名,还是配置管理,数组都能让你的脚本更简洁有力。记住本文提到的 Linux Shell数组 最佳实践,避免常见陷阱,你就能写出专业级的 Bash 脚本!
现在,打开你的终端,动手试试吧!
本文由主机测评网于2025-11-27发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511880.html