shell学习整理(6)-数组和关联数组

来源:互联网 发布:帝国cms 获取网站地址 编辑:程序博客网 时间:2024/06/01 09:49
数组即借助索引将多个独立的数据存储为一个集合,一般数组使用整数做为数组的索引,bash也支持关联数组,可以使用字符串做为数组索引。


1. 可以使用一列值来定义一组数组
$ array_var=(1 2 3 4 5 6 )


$ echo $array_var
1


$ echo ${array_var[2]}
3


2. 将数组定义成一组 索引-值
$ array1_var[0]="test1"
$ array1_var[1]="test2"
$ array1_var[2]="test3"
$ array1_var[3]="test4"
$ array1_var[4]="test5"
$ array1_var[5]="test6"


3. 打印特定索引数组元素内容echo ${数组[索引]}
$ echo ${array1_var[0]}
test1


index=5
echo ${array_var[$index]}
test6


4. 以清单形式打印出数组所有值echo ${数组[*]}
$ echo ${array1_var[*]}
test1 test2 test3 test4 test5 test6


5. 打印数组长度echo ${#数组[*]}
$ echo ${#array1_var[*]}


6. 在关联数组中,我们可以用任意的文本作为数组索引。首先,需要使用声明语句将一个变量
名声明为关联数组,然后使用进行赋值
$ declare -A fruits_value     //将fruits_value声明为关联数组
$ $ fruits_value=([apple]='100dollars' [orange]='150 dollars')   为数组一一赋值,利用内嵌“索引 - 值”列表的方法,提供一个“索引 - 值”列表
$ echo "Apple costs ${fruits_value[apple]}"   读取fruits_value[apple]的值
Apple costs 100dollars


$ echo "Orange costs ${fruits_value[orange]}"   读取fruits_value[orange]的值
Orange costs 150 dollars


7. 列出数组索引  echo ${!数组[*]}
$ echo ${fruits_value[*]}
100dollars 150 dollars      //读取了数组的值


$ echo ${!fruits_value[*]}
apple orange    //读取了数组的索引