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</etc/hosts

      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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 小时候跟爸爸去买书,我买一盒彩笔,一本奥特曼迷宫漫画,还有一袋水粉纸。爸爸看上了老板书桌上一本书,《胡雪岩传》。 ...
    唯恐不久存阅读 1,315评论 0 1
  • 看过的,听过的,甚至曾经经历过的,都不过是故事。心若感动,苍天可鉴。心若麻木,过眼云烟。阿弥陀佛。
    悠悠_7da5阅读 472评论 0 0
  • 首先通过nodejs搭建web服务器,搭建好后将服务启动。然后在public目录下新建一个audio目录,在aud...
    一叶知秋0830阅读 5,225评论 0 1
  • 优秀如老妈 我也要努力呀
    老张的小可爱阅读 1,346评论 0 0
  • 放假在家,妈妈每次上街就会回头问一句,买衣服去,要不?没想到要什么,下次呗,晚上本来是出来买吃的,终究还是逛到服装...
    fang晓远阅读 2,767评论 0 1

友情链接更多精彩内容