美文网首页
Shell编程之数组

Shell编程之数组

作者: 你好树洞先生 | 来源:发表于2019-12-23 10:36 被阅读0次


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

相关文章

  • Shell编程之数组

    Shell编程之数组 1.什么是数组: 数组其实也算是变量,传统的变量只能是存储一个值,但是数组可以存储多个值。 ...

  • 每天学习一个shell 技能 (2)

    每天学习一个shell 技能 (2) Shell 数组 定义数组 读取数组 获取数组的长度 Shell 注释 以"...

  • Linux Shell:Shell数组操作

    摘要:Linux,Shell Shell数组类型 Shell数组分为普通数组和关联数组,普通数组就是相同类型的元素...

  • Shell入门

    Shell Shell编程之Hello World 编写一个hello world shell一般使用.sh作为后...

  • Shell 学习

    shell 变量 shell 参数传递 shell 数组 shell 运算符 shell echo 命令 prin...

  • Shell 教程

    Shell 变量 Shell 传递参数 Shell 数组 Shell 基本运算符 Shell echo 命令 Sh...

  • [LN_12] Shell编程-Shell数组的定义&使

    目录结构 一、Shell数组的定义&使用 Bash Shell只支持一维数组,不支持多维数组。数组中可存放多个值,...

  • Shell脚本语言一

    一、语法 格式 运行 Shell变量 Shell字符串 Shell数组 Shell注释 Shell传递参数 She...

  • shell数组

    Shell 数组 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义...

  • 扣丁学堂Linux培训分享Shell编程之特殊变量讲解

    本篇文章小编给喜欢Linux开发技术或者是想要参加Linux培训学习的小伙伴分享一下Shell编程之特殊变量讲解,...

网友评论

      本文标题:Shell编程之数组

      本文链接:https://www.haomeiwen.com/subject/xacznctx.html