Shell数组

shell中数组的使用

数组是一个很有用的数据结构,经常使用的功能有初始化,遍历,查找,获取数组长度等操作

一、初始化

小括号中使用空格分开的数据结构就是一个数组,也可使用下标添加元素

arr=(1 2 3)
arr[3]="yum"

二、输出数组

echo ${arr[*]}	# 也可以使用*代替

三、遍历数组

for e in ${arr[*]
do
	echo ${e}
done

四、获取指定索引元素

echo ${arr[1]}

五、获取数组长度

echo ${#arr[*]}

六、关联数组

声明关联数组
declare -A user

定义数组
user[name]='jack'
user[age]=18

七、对关联数组的遍历

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[@]}获取的是关联数组的所有下标值组成的数组

shell通过自定义分隔符分隔数组

#!/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[@]} 获取数组的长度。
posted @ 2019-11-16 15:44  GeminiMp  阅读(316)  评论(0编辑  收藏  举报