Shell脚本--数组
和其他编程语言一样,Shell 也支持数组。Shell 并且没有限制数组的大小,理论上可以存放无限量的数据。
获取数组中的元素要使用下标[ ]
,下标可以是一个整数,也可以是一个结果为整数的表达式。
1. 数组定义
在 Shell 中,用括号( )
来表示数组,数组元素之间用空格来分隔。由此,定义数组的一般形式为:
array=(a1 a2 a3 ... an)
Shell 是弱类型的,它并不要求所有数组元素的类型必须相同。
2. 数组使用
获取数组元素的值,一般使用下面的格式:
${array[i]}
其中,array 是数组名,i 是下标,数组元素从 0 开始计数,下标是 * 或者 @ 时可以获取数组中的所有元素。
2.1. 获取元素
示例:
#!/bin/bash array=(1 hi "hello world") echo ${array[0]} echo ${array[1]} echo ${array[2]} echo ${array[*]} echo ${array[@]}
其结果为:
1 hi hello world 1 hi hello world 1 hi hello world
2.2. 获取数组长度
利用 * 或者 @ 可以将数组扩展成列表,然后使用 # 来获取数组元素的个数,格式如下:
${#array[@]}
${#array[*]}
同样,如果想获取某一个元素的长度,依旧可以使用 # 来获取数组元素的长度:
${#arry[n]}
示例:
#!/bin/bash array=(1 hi "hello world") echo ${#array[0]} echo ${#array[1]} echo ${#array[2]} echo ${#array[*]}
其结果为:
1 2 11 3
2.3. 修改数组元素
修改数组元素的思路是:利用数组下标定位到指定位置,然后对其赋值进行修改或者追加元素。
示例:
#!/bin/bash array=(1 "hi." "hello world") echo ${array[*]} array[1]="hi" echo ${array[*]} array[3]=! echo ${array[*]}
其结果为:
1 hi. hello world 1 hi hello world 1 hi hello world !
2.4. 删除数组元素
在 Shell 中,使用 unset 关键字来删除数组元素,具体格式如下:
unset array[i]
如果不写下标,那么就是删除整个数组,所有元素都会消失。
示例:
#!/bin/bash array=(1 "hi." "hello world") echo ${array[*]} unset array[0] echo ${array[*]} unset array echo ${array[*]}
其结果为:
1 hi. hello world hi. hello world
2.5. 数组拼接
数组拼接(数组合并)就是将两个或多个数组连接成一个数组。拼接数组的思路是:先利用@
或*
,将数组扩展成列表,然后再合并到一起。
示例:
#!/bin/bash
array1=("hi.")
array2=("hello world")
array=(${array1[*]} ${array2[*]} !)
echo ${array[*]}
其结果为:
hi. hello world !
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了