SHELL脚本攻略(学习笔记)--1.7 数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SHELL脚本攻略(学习笔记)--1.7 数组相关的知识,希望对你有一定的参考价值。

bash里有两种数组:普通数组和关联数组。普通数组只能使用整型数值作为数组索引,关联数组可以使用字符串作为索引。

1.7.1 普通数组

定义数组的方式一:

[[email protected] tmp]# array_test=(1 2 3 4)

它们分别存储在索引位0-3的位置上,是array_test[0]到array_test[3]对应的值。

[[email protected] tmp]# echo ${array_test[2]}  ç数组的引用方式:${array_name[index]}

3

注意数组中定义是使用空格作为分隔符定义在括号内,而不是逗号。如果使用逗号,则它们将作为一个整体,也就是数组索引0的值。

如果使用逗号,则:

[[email protected] tmp]# array_test=(1,2,3,4)  

[[email protected] tmp]# echo ${array_test[0]}   ç整体结果作为索引0位的值。

1,2,3,4 

定义数组的方式二:可以自定义索引位。

[[email protected] tmp]# array_test[1]=1

[[email protected] tmp]# array_test[2]=2

[[email protected] tmp]# array_test[3]=3

[[email protected] tmp]# array_test[4]=4

[[email protected] tmp]# echo ${array_test[*]}

1,2,3,4 1 2 3 4

打印数组所有值。

[[email protected] tmp]# echo ${array_test[*]}

1,2,3,4 1 2 3 4

或者:

[[email protected] tmp]# echo ${array_test[@]}

1,2,3,4 1 2 3 4

查看数组索引号。

[[email protected] tmp]# echo ${!array_test[*]}

0 1 2 3 4

或者

[[email protected] tmp]# echo ${!array_test[@]}

0 1 2 3 4

1.7.2 统计数组长度

[[email protected] tmp]# echo ${#array_test[*]}

5

[[email protected] tmp]# echo ${#array_test[@]}

5

1.7.3 关联数组

关联数组支持字符串作为数组索引。使用关联数组必须先使用declare -A声明它。

[[email protected] tmp]# declare -A array_dep   ç声明之后就可以给其赋值了

[[email protected] tmp]# array_dep=([name1]=longshuai [name2]=xiaofang)

[[email protected] tmp]# echo ${array_dep[name1]}

longshuai

也可以分开赋值。

[[email protected] tmp]# array_dep[name3]=zhangsan

[[email protected] tmp]# array_dep[name4]=lisi

[[email protected] tmp]# echo ${array_dep[name4]}

lisi

查看数组所有值。

[[email protected] tmp]# echo ${array_dep[*]}

zhangsan xiaofang longshuai lisi   ç可以看到是字母倒序排列的

或者:

[[email protected] tmp]# echo ${array_dep[@]}

zhangsan xiaofang longshuai lisi   ç可以看到是字母倒序排列的

查看数组索引号。

[[email protected] tmp]# echo ${!array_dep[@]}   ç对应字母倒序排列

name3 name2 name1 name4

或者:

[[email protected] tmp]# echo ${!array_dep[*]}

name3 name2 name1 name4

统计数组长度。

[[email protected] tmp]# echo ${#array_dep[*]}

4

或者:

[[email protected] tmp]# echo ${#array_dep[@]}

4

以上是关于SHELL脚本攻略(学习笔记)--1.7 数组的主要内容,如果未能解决你的问题,请参考以下文章

SHELL脚本攻略(学习笔记)--1.8 别名

SHELL脚本攻略(学习笔记)--1.5 进行数学运算

SHELL脚本攻略(学习笔记)--1.12 read基础

SHELL脚本攻略(学习笔记)--1.4 变量(基础)

SHELL脚本攻略(学习笔记)--1.2 echo和printf打印输出

SHELL脚本攻略(学习笔记)--1.3 多命令逻辑执行顺序