码迷,mamicode.com
首页 > 编程语言 > 详细

bash中的数组

时间:2017-05-14 10:29:24      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:数组   bash   

在shell中每一个变量名只能存储一个数据,当为这个变量名进行重新赋值的时候,原先的数据就会丢失,所以我们需要数组这个东西。数组可以将很多的数据使用同一个名称进行保存,相当于多个变量的集合,且在取用的时候很方便。接下来我们来说一说数组的赋值和取用的方法。数组分为稠密数组和稀疏数组,稠密数组就是索引编号必须连续,而稀疏数组的索引编号可以不连续,bash数组属于这一类。

  在bash中使用一个数组可以分为两种情况,第一种是先进行声明,然后再使用,第二种是不进行声明,直接使用。声明数组需要用到declare命令,这个命令是声明变量的命令,在这里使用“-a”或“-A”选项来声明数组:

declare -a NAME:将NAME声明为索引数组(如果支持)

declare -A NAME:将NAME声明为关联数组(如果支持)

或者不用声明也可以直接使用(按照从头开始的顺序依次使用的叫做稠密数组,而跳着使用的叫做稀疏数组):

ARRAY_NAME=("value1" "value2" ...)            ——声明稠密数组

a=("123" "234" "345")

ARRAY_NAME=([0]="value1" [1]="value2" [5]="value3" ...)  ——声明稀疏数组

b=([1]="abc" [3]="cde")

赋值还可以像给变量赋值一样

ARRAY_NAME[0]=value1

ARRAY_NAME[1]=value2

...

 ~]$ d[2]=b
 ~]$ echo ${d[*]}
b

在我们为数组赋值之后可以通过“echo ${数组名[一个数字]}”来查看,在中括号中的数字对应着数组中的变量,我们可以用“*”或“@”来将一个数组中的所有数据输出。我们可以像使用变量那样来使用数组,使用的方法是“${ARRAY_NAME[INNDEX]}”。

注意:如果不给出INDEX,则表示引用数组的第一个元素,即INDEX-0的元素


当要引用整个数组的所有元素的时候使用:${ARRAY_NAME[*]}或者${ARRAY_NAME[@]},使用这条命令之后会将数组中的所有元素按照顺序输出。

 ~]$ d[2]=b
 ~]$ d[4]=b
 ~]$ echo ${d[*]}
b b

引用数组的索引,使用:${!ARRAY_NAME[*]}或者${!ARRAY_NAME[@]},当使用这条命令时显示的是在数组中被使用的那些变量的索引,比如下面这个例子中为数组中的第二个和第四个赋值那么显示出来的就是2和4.

 ~]$ d[2]=b
 ~]$ d[4]=b
 ~]$ echo ${!d[*]}
2 4

在有的时候,我们使用数组需要查看数组的长度,就可以使用下面这两个命令,但是统计的是已经保存数据的那些变量,也就是数组中有效元素的个数。

${#ARRAY_NAME[*]}或者${#ARRAY_NAME[@]}

 ~]$ d[2]=b
 ~]$ d[4]=b
 ~]$ echo ${#d[*]}
2
 ~]$ echo ${#d[@]}
2

数组的使用其实和变量几乎相同,对于变量的操作对于数组同样适用,但是在一些重复性的操作中数组能够发挥极其巨大的作用。

bash中的数组

标签:数组   bash   

原文地址:http://11142243.blog.51cto.com/11132243/1925341

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!