Shell小笔记(三)
文章摘要
GPT 4
此内容根据文章生成,仅用于文章内容的解释与总结。
数组的类型
普通数组
- 索引:通常是从0开始的整数,表示数组中的位置
- 例如,第一个元素的索引是0,第二个元素的索引是1,依此类推
- 元素:存储在数组中的实际值,每个索引对应一个元素值
- 例如,
my_array[0]
表示数组中的第一个元素。
- 例如,
- 普通数组使用可不声明(
declare -a [数组名]
)
1 | my_array=("apple" "banana" "cherry") |
关联数组
索引:在关联数组中,索引是字符串,而不是整数
- 每个索引表示一个键,它与一个特定的元素值相关联。
- 与普通数组最大的区别,其由特定格式的键值对组成
元素:元素是与索引关联的值
- 关联数组中的每个索引都映射到一个元素值。
使用前必须声明(
declare -A [数组名]
)
1 | declare -A fruit_colors |
数组的定义
直接定义
格式为 array_name=(value1 value2 ... valueN)
1 | array=(a b c) |
索引定义
格式为 array_name=( [1]=value1 [2]=value2 ... [N]=valueN )
1 | array=([1]=a [2]=b [3]=c) |
数组的取值
要访问数组中的值,可以使用${数组名[索引]}
读取索引
这用于获取数组的索引(或键),而不是数组元素本身
echo ${!array[*]}
:视为整体
echo ${!array[@]}
:视为个体
读取数值
返回的是数组中的所有元素,不包括索引
echo ${array[*]}
:视为整体
echo ${array[@]}
:视为个体
特定元素
echo ${array[0]}
:访问数组的第一个元素
echo ${array[@]:1}
:表示从索引 1 开始,包括索引 1 及之后的所有元素
echo ${array[@]:1:2}
:从第二个元素开始,访问连续的两个元素
其他用法
echo ${#array[@]}
: 获取数组中的元素个数(数组的长度)
echo ${#array[n]}
:获取数组第n个
元素的字符个数
数组的遍历
通过索引
- 如:循环以索引
i
来迭代数组array
- 适合需要根据元素的索引处理数组元素的情况
1 |
|
通过元素
- 如:循环迭代数组
array
中的每个元素,并将每个元素赋值给变量i
- 适合需要依次访问数组元素的情况
1 |
|
数组删切替
删除
使用unset array[index]
命令,可以删除数组中的特定元素
array
是数组名index
是索引
切片
使用 ${array[@]:start:length}
命令,可对数组进行切片
start
是起始索引length
是要包括的元素的数量
替换
使用 ${array[@]/old/new}
命令,可对数组的某个特定元素进行全量替换
array
是数组名old
是需要替换的元素new
是替换后的元素
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自孤熵小狼
评论 ()