目录shell
数组是一个颇有用的数据结构,常常使用的功能有初始化,遍历,查找,获取数组长度等操做数组
1、初始化bash
小括号中使用空格分开的数据结构就是一个数组,也可以使用下标添加元素数据结构
arr=(1 2 3) arr[3]="yum"
2、输出数组code
echo ${arr[*]} # 也可使用*代替
3、遍历数组索引
for e in ${arr[*] do echo ${e} done
4、获取指定索引元素字符串
echo ${arr[1]}
5、获取数组长度it
echo ${#arr[*]}
6、关联数组for循环
声明关联数组 declare -A user 定义数组 user[name]='jack' user[age]=18
7、对关联数组的遍历class
for循环遍历 for u in ${!user[@]} do echo "user's ${u} is : ${user[$u]} done 结果是: user's name is : jack user's age is : 18 备注:#{!user[@]}获取的是关联数组的全部下标值组成的数组
#!/bin/bash a="hello,world,nice,to,meet,you" #要将$a分割开,先存储旧的分隔符 OLD_IFS="$IFS" #设置分隔符 IFS="," #以下会自动分隔 arr=($a) #恢复原来的分隔符 IFS="$OLD_IFS" #遍历数组 for s in ${arr[@]} do echo "$s" done 变量$IFS存储着分隔符,这里咱们将其设为逗号 "," OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。 arr=($a)用于将字符串$a按IFS分隔符分割到数组$arr ${arr[0]} ${arr[1]} ... 分别存储分割后的数组第1 2 ... 项 ${arr[@]}存储整个数组。 ${!arr[@]}存储整个索引值:1 2 3 4 ... ${#arr[@]} 获取数组的长度。