Shell数组

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

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[@]} 获取数组的长度。
相关文章
相关标签/搜索