一、数组
在shell脚本中,数组是一种用于存储一组相同类型数据的结构。数组可以存储整数、字符串、单词、命令行参数等各种类型的数据。
1、数组的定义
数组元素括在小括号里,元素之间用空格分隔
array=(test1 test2 test3 test4)
除了上面的方法,也可以用索引的方式创建数组,以下命令将创建一个名为array_b
的数组.
array_b[0]=num1
array_b[1]=num2
array_b[2]=num3
array_b[3]=num4
2、打印数组
使用索引,打印数组内的一个元素
echo ${array[0]} #打印数组array的第一个元素
test1 #打印结果
echo ${array_b[0]} #打印array_b的第一个元素
num1 #打印结果
以列表的形式,打印数组的全部元素
echo ${array[*]} #第一种形式
test1 test2 test3 test4
echo ${array[@]} #第二种形式
test1 test2 test3 test4
echo ${array_b[@]} #打印array_b的全部元素
num1 num2 num3 num4
3、打印数组中元素的个数
echo ${#array[*]} #第一种形式
4
echo ${#array[@]} #第二种形式
4
4、使用变量打印数组元素
index=1
echo ${array[$index]}
test2
二、关联数组
数组使用整数作为索引,而关联数组使用字符串作为索引,创建关联数组之前要先声明,使用命令declear -A 数组名
来声明。
举个例子,使用关联数组来打印某位同学的各科成绩。
$ declare -A zhangsan_score #声明
$ zhangsan_score=([chinese]='90' [math]='85' [english]='95') #赋值,此处也可以向数组一样,以索引的方式赋值
$ echo "The math score of zhangsan is ${zhangsan_score[math]}" #使用
The math score of zhangsan is 85 #回显
获取关联数组的索引列表
$ echo ${!zhangsan_score[*]} #第一种形式
english chinese math
$ echo ${!zhangsan_score[@]} #第二种形式
english chinese math
获取关联数组的元素方法与数组相同。