Shell编程之数组


Shell编程之数组

1.什么是数组:

数组其实也算是变量,传统的变量只能是存储一个值,但是数组可以存储多个值。

2.数组的分类:

shell数组分为普通数组和关联普通数组:

普通数组:只能使用整数作为数组索引。

关联数组:可以使用字符串作为数组索引。

例子:

books=(python java shell)  #普通数组

---------------------

|python |java |shell|

|  0    |  1  |  2  |  #索引(下标)

注:普通数组下标只能是整数

-------------------------------------------------------

info=([name]=liu [age]=16 [skill]=shell) 关联数组

-------------------------------------------------------

|liu |16 |shell |

|name|age|skill |  #索引(下标)

注:关联数组下标可以是字符串

-------------------------------------------------------

3.数组基本使用:

1)普通数组仅能使用整数来作为索引:

1.1普通数组的赋值:

#方式一:针对每个索引进行赋值(数组名[索引]=变量值)

[root@shell ~]# array[0]=pear

[root@shell ~]# array[1]=apple

[root@shell ~]# array[2]=orange

#方式二:一次赋多个值(数组名=(多个变量值))

[root@shell ~]# array2=(tom jack alice)

[root@shell ~]# array3=(tom jack alice "bash shell")

[root@shell ~]# array4(1 2 3 "linux shell" [20]=docker)

-------------------------------------------------------

1.2 如何查看普通数组的赋值与访问数组的内容

#1.查看普通数组:

[root@shell ~]# declare -a

#2.如何访问数组中的元素

[root@shell ~]# echo $(array1[0])  #数组名加索引即可访问数组中的元素

pear

[root@shell ~]# echo ${array1[@]}  #访问数组中所有数据,相当于echo ${array[*]}

pear apple orange

[root@shell ~]# echo ${!array1[@]} #获取数组的索引,在数据遍历的时候有用

0 1 2 3

[root@shell ~]# echo ${$array[@]}  #统计数组元素的个数

3

-------------------------------------------------------

2.关联数组能使用字符串的方式作为索引:

2.1 关联数组的赋值:

#必须先申请这是一个关联数组

[root@shell ~]# declare -A info

[root@shell ~]# declare -A info2

#方式一:关联数组的赋值(数组名[索引]=变量值)

[root@shell ~]# info[index1]=pear

[root@shell ~]# info[index2]=apple

[root@shell ~]# info[index3]=arange

#方式二:关联数组的赋值(数组名=([索引1]=变量值2 [索引2]=变量值2))

[root@shell ~]# info2=([index1]=linux [index2]=nginx [index3]=docker [insex4]='bash shell')

#查看关联数组

[root@shell ~]# declare -A

3.如何访问关联数组中的数据

[root@shell ~]# echo ${info2[index2]} #访问数组中第二个元素

nginx

[root@shell ~]# echo ${info2[@]} #访问数组中所有元素 等同于echo ${info2[*]}

bash shell linux nginx docker

[root@shell ~]# echo ${!tt_array2[@]} #访问数组中所有元素的索引

index4 index1 index2 index3

==============================================================

4.数组遍历与循环

通过数组元素的索引进行遍历(推荐) 注意:将统计的对象作为数组的索引

仅针对关联数据

vi  array_hosts.sh

while read line

do

  hosts[0]=10.0.0.1

  hosts[1]=127.0.0.1

done

      echo "查看数组的索引对应的值:${hosts[0]}"

for i in ${!hosts[@]}

do

  echo hosts数组的索引:$i hosts数组的值:${hosts[$i]}

done

[root@shell ~]# sh array_hosts.sh

查看数组的索引对应的值:10.0.0.1

hosts数组的索引:0 hosts数组的值:10.0.0.1

hosts数组的索引:1 hosts数组的值:127.0.0.1

你可能感兴趣的:(Shell编程之数组)