合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
[TOC] ## 创建数组 语法 ``` ARRAY[INDEX]=value ARRAY=(value1 value2 ... valueN) //or ARRAY=( value1 value2 value3 ) // 定义数据 mp3s=( *.mp3 ) // 赋值一个数组变量 read -a dice // 声明数组 declare -A colors colors["red"]="#ff0000" colors["green"]="#00ff00" ``` ## 读取数组 ### 读取单个 ``` echo ${array[i]} ``` ### 读取所有成员 ``` $ foo=(a b c d e f) $ echo ${foo[@]} a b c d e f ``` 循环 ``` for i in "${names[@]}"; do echo $i done ``` ## 拷贝一个数组 ``` hobbies=( "${activities[@]}" ) // 合并一个数组 hobbies=( "${activities[@]" diving ) ``` ## 数组的长度 ``` $ a[100]=foo $ echo ${#a[*]} 1 $ echo ${#a[@]} 1 ``` ## 提取数组序号 ``` $ arr=([5]=a [9]=b [23]=c) $ echo ${!arr[@]} 5 9 23 $ echo ${!arr[*]} 5 9 23 ``` ## 提取数组成员 ``` $ food=( apples bananas cucumbers dates eggs fajitas grapes ) $ echo ${food[@]:1:1} bananas $ echo ${food[@]:1:3} bananas cucumbers dates $ echo ${food[@]:4} eggs fajitas grapes ``` ## 追加数组成员 ``` $ foo=(a b c) $ echo ${foo[@]} a b c $ foo+=(d e f) $ echo ${foo[@]} a b c d e f ``` ## 删除数组 ``` $ unset foo[2] $ echo ${foo[@]} a b d e f ``` ## 关联数组 Bash 的新版本支持关联数组