数组的类型
之前说到变量的定义,一个变量代表一个值,一个字符串,一个命令等等。但变量中只有一个值,而数组中可以包含多个值,并且拥有对应的索引。以下举例进行说明,让我们了解到什么是数组。
#定义变量name
name=dingxiang
-------------------------------
| d | i | n | g | x | i | a | n | g |
--------------------------------
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 索引
----------------------------- --
name变量每个字母对应不同索引下标,那怎么通过对应索引看到对应字母呢?如下:
[root@localhost ~]# name=dingxiang
[root@localhost ~]# echo ${name:0:4} #显示4个字母,不超过索引4
ding
[root@localhost ~]# echo ${name:4} #显示第四个索引后的内容
xiang
[root@localhost ~]# echo ${name:1:-2} #显示从第二个索引到倒数第三个索引的值
dingxia
#普通数组
定义普通数组,在python里为列表
books=(linux java python shell docker)
------------------------------------------
| linux | java | python | shell | docker |
------------------------------------------
| 0 | 1 | 2 | 3 | 4 | 索引(py下标)
------------------------------------------
普通数组如何显示索引及对应值呢?如下所示:
[root@localhost ~]# books=(linux java python shell docker)
[root@localhost ~]# echo ${books[*]} #显示books数组的所有值,${books[@]}效果一样
linux java python shell docker
[root@localhost ~]# echo ${books[0]} #显示对应索引的对应值,0对应为linux
linux
[root@localhost ~]# echo ${books[-4]} #显示对应索引的对应值,-4为索引倒着数的第四个值
java
[root@localhost ~]# echo ${books[@]:1:3} #显示索引从1开始,往后数三个的的值
java python shell
#关联数组
#定义一个关联数字info
info=([name]=dingxiang [sex]=male [age]=22 [height]=177 [skill]=cloud)
----------------------------------------
| dingxiang | male | 22 | 177 | cloud |
----------------------------------------
| name | sex | age | height | skill | 索引
----------------------------------------
关联数组需要declare去定义
[root@localhost ~]# declare -A info #定义关联数组info
[root@localhost ~]# info=([name]=dingxiang [sex]=male [age]=22 [height]=177 [skill]=cloud) #赋值
[root@localhost ~]# echo ${info[name]} #显示关联数组索引name的值
dingxiang
[root@localhost ~]# echo ${info[@]} #显示所有索引的值
dingxiang 177 22 cloud male
[root@localhost ~]# echo ${!info[@]} #显示所有索引信息,这里定义完自动给你重新排序了,但依旧是一一对应的关系
name height age skill sex
[root@localhost ~]# echo ${info[@]:1:3} #显示第一个到第三个索引的值
tianyun 177 22