

















在 Shell 脚本(特别是 Bash)中,索引数组(Indexed Array) 是最基础且最常用的数据结构之一。
它允许你将多个值存储在同一个变量名下,并通过整数索引(从 0 开始)来访问这些值。
不同于 C 语言等编译型语言,Shell 中的数组是动态的,不需要预先定义大小,且支持稀疏存储(即索引可以不连续)。
以下是关于 Shell 索引数组的详细操作指南:
1. 定义与初始化
在 Bash 中,你不需要显式声明数组即可使用,但使用 declare -a 是一个良好的编程习惯。
直接赋值(推荐): 使用圆括号 () 包裹元素,空格分隔。
逐个赋值: 指定索引进行赋值。
命令输出赋值: 将命令的执行结果存入数组。
# 方法一:一次性初始化 fruits=("苹果" "香蕉" "橘子" "葡萄") # 方法二:显式声明并逐个赋值 declare -a colors colors[0]="红色" colors[1]="绿色" colors[5]="蓝色" # 支持稀疏数组,索引不需要连续 colors[3]="白色" # 索引也可以将低索引号写在后面,for遍历输出时,低索引的元素会先输出
除了上面的两种方式,还是一种可以不指定索引号的方法, 可以追加元素到数组中 ,方法即 索引数组变量名 += ("新元素的值")
declare -a colors colors[0]="红色" colors+=("author-qq-5201351") colors[2]="绿色" colors[5]="蓝色" # 支持稀疏数组,索引不需要连续 colors[3]="白色" # 索引也可以将低索引号写在后面,输出时,低索引的元素会先输出
注:+=后面需要跟上 ("新元素的值") ,否则的话,如果去掉(),无论这个+= 在第几行,都会添加到第一个元素的值后面,最后变成第一个新元素的值 即 红色author-qq-5201351
访问数组时,必须使用 ${} 语法,直接使用 $var 通常只能获取到第一个元素。

删除整个数组变量:unset var
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/19858578
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。