16bash编程之数组介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16bash编程之数组介绍相关的知识,希望对你有一定的参考价值。

1、程序构成:

    主要由指令和数据构成,数据可以是变量、文件、数组


2、数组介绍:

变量:存储单个元素的内存空间

数组:存储多个元素的连续的内存空间


3、数组的特点:

    数组名:整个数组只有一个名字

    数组索引:元素编号从“0”开始,数组名[索引]


注意:对于bash-4及之后的版本,支持自定义的索引格式,而不仅仅是0,1,2....等等数字格式。同时数组可以不事先声明,可以直接使用,但是如果不声明,它会把多个字符串的变量当做一个变量,因此使用数组前,应先声明数组。


4、声明数组:(有两种方式)

    方式一:declare -a NAME  //声明索引数组,用0,1,2,3....表示各元素

    方式二:declare -A NAME  //声明关联数组,自定义索引格式


5、给数组中元素赋值:

    ①、一次只赋值一个元素:

    格式:ARRAY_NAME[INDEX]=value

示例:

[[email protected] ~]# declare -a animal

[[email protected] ~]# animal[0]=pig

[[email protected] ~]# animal[1]=sheep

[[email protected] ~]# echo $animal  //引用第“0”个元素

pig

[[email protected] ~]# echo ${animal[1]}

pig[1]

[[email protected] ~]# 

    

    ②、一次赋值全部元素:

    格式:ARRAY_NAME=("VALUE1" "VALUE2" "VALUE3" ...)    //必须以空格键隔开各元素值

示例:

[[email protected] ~]# weekdays=("monday" "tuesday" "wedsday")

[[email protected] ~]# echo ${weekdays[2]}

wedsday

[[email protected] ~]# 

    

    ③、只赋值特定元素

    格式:ARRAY_NAME=([0]="VAL0" [1]="VAL1" [3]="VAL3")    //可以不连续赋值,此种被称为稀疏数组。

示例:

[[email protected] ~]# cigrate=([0]="najing" [1]="xiaosu" [4]="yuxi")

[[email protected] ~]# echo ${cigrate[0]}

najing

[[email protected] ~]# echo ${cigrate[1]}

xiaosu

[[email protected] ~]# echo ${cigrate[2]}


[[email protected] ~]# echo ${cigrate[3]}


[[email protected] ~]# echo ${cigrate[4]}

yuxi

[[email protected] ~]# 


注意:bash支持稀疏格式的数组。



5、数组元素引用:

    ${ARRAY_NAME[INDEX]}   //必须加{ },因为不加,则只会引用ARRAY_NAME,而不是整个数组元素。






以上是关于16bash编程之数组介绍的主要内容,如果未能解决你的问题,请参考以下文章

11bash编程之数组

Bash编程之数组和字符串处理

bash编程系列之数组

linux下Bash编程之数组Array详解

bash脚本编程之数组及随机变量

linux命令:bash编程之数组