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编程之数组介绍的主要内容,如果未能解决你的问题,请参考以下文章