Shell脚本中,创建数组的多种方式

从版本4开始支持关联数组,查看版本:# bash -version

以下是一些创建索引数组的常见方式:

1. 静态定义:

array[0]=val1
array[1]=val2
array[2]=val3

2. 动态定义:

declare -a array
array=(val1 val2 val3)

3. 自动创建并赋值:

array=([0]=val1 [1]=val2 [2]=val3)

4. 从命令输出创建数组

# 这将执行命令(这里是 ls /opt/script),并将输出的每一行作为数组array 的一个元素。
mapfile -t array < <(ls /opt/script)

创建关联数组(Bash 4.0及以上)

1.创建并赋值:

declare -A assoc_array
assoc_array[key1]=val1
assoc_array[key2]=val2

2. 自动创建并赋值:

declare -A assoc_array
assoc_array=([key1]=val1 [key2]=val2)

3. 将关联数组的值赋值给 索引数组

declare -A assoc_array
assoc_array=([key1]=val1 [key2]=val2)

# 创建一个索引数组,包含关联数组的所有值
array=("${assoc_array[@]}")

切片数组

提取子数组:

# 从索引1开始提取3个元素
subarray=("${array[@]:1:3}")

扩展数组

添加元素到数组末尾:

array+=(new_element1 new_element2)

在数组开头添加元素:

array=(new_element1 new_element2 "${array[@]}")

删除数组元素

1. 删除特定索引的元素:

unset array[1] # 删除索引为1的元素

2. 删除数组中的特定值:

array=("${array[@]/elem_to_remove}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值