Shell基础教程04 数组
Linux-man.cn 发布于 阅读:39 技术文章
数组是将多个独立的数据存储为一个集合
索引数组
一般用数字作为键的数组叫做索引数组
1、定义一个数组:
ss@ANDROID:~$ array=(a b c d e f)
这些值将会存储在以0为起始索引的连续位置上,对应关系如下:
a b c d e f
| | | | | |
0 1 2 3 4 5
2、打印特定元素的内容:
ss@ANDROID:~$ echo ${array[2]}
c
ss@ANDROID:~$
看上面的对应关系,索引为2对应的刚好是c
3、打印出数组中所有的值:
ss@ANDROID:~$ echo ${array[*]}
a b c d e f
ss@ANDROID:~$
将索引数字位置改为"*"号或"@"符将打印出数组内所有的值,你试下"@"符吧。
关联数组
一般用字符串作为键的数组叫做关联数组
1、在定义关联数组前需要使用declare命令声明为关联数组,这是bash4.0(shell的一种)后才引入的功能。
将变量arr声明关联数组:
ss@ANDROID:~$ declare -A arr
注意:声明前arr不能是索引数组
2、定义一个关联数组:
ss@ANDROID:~$ arr=([a]="小米" [b]="锤子" [c]="华为")
3、打印特定元素:
ss@ANDROID:~$ echo ${arr[b]}
锤子
ss@ANDROID:~$
4、打印数组中所有的值:
ss@ANDROID:~$ echo ${arr[@]}
小米 锤子 华为
ss@ANDROID:~$
和索引数组一样也"*"、"@"都行
补充
打印数组有多少个元素(数组长度)的语法:
ss@ANDROID:~$ echo ${#array[*]}
打印数组全部索引的语法:
ss@ANDROID:~$ echo ${!array[*]}
更改数组指定索引的值,我们还以上面定义的arr数组为例:
ss@ANDROID:~$ echo ${arr[*]}
小米 锤子 华为
ss@ANDROID:~$ arr[c]="oppop"
ss@ANDROID:~$ echo ${arr[*]}
小米 锤子 oppop
ss@ANDROID:~$
“华为”被换成了“oppop”(没用过oppop手机,应该是拼错了^_^)
索引数组和关联数组以上语法通用,赶快试下吧!
总结
- 数组分为索引数组和关联数组
- 定义关联数组前需要使用"declare -A 变量名"声明变量为关联数组
- 封面图片是一个带格子的盒子,有多少个格子就可以放多少个东西,是不是有点类似我们的数组。这也许是程序员都爱穿格子衬衫的原因吧。
- 我等下搜索下oppop怎么拼