Shell基础教程04 数组

站长QQ群

用于技术交流、投稿、商务合作 站长唯一QQ:528482275 站长唯一QQ群:649978721

IT运维技术交流

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

数组是将多个独立的数据存储为一个集合

 

索引数组


 

一般默认用数字作为键的数组叫做索引数组

 

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]}css@ANDROID:~$

看上面的对应关系,索引为2对应的刚好是c

 

3、打印出数组中所有的值:

ss@ANDROID:~$ echo ${array[*]}a b c d e fss@ANDROID:~$

将示例2中索引数字位置改为"*"号或"@"符将打印出数组内所有的值,你试下"@"符吧。

 

关联数组


 

一般用字符串作为键的数组叫做关联数组

 

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:~$

和索引数组一样"*"、"@"也都行

 

补充


 

1、打印数组有多少个元素(数组长度)的语法:

ss@ANDROID:~$ echo ${#array[*]}

 

2、打印数组全部索引的语法:

ss@ANDROID:~$ echo ${!array[*]}

 

3、更改数组指定索引的值,我们还以上面定义的arr数组为例:

ss@ANDROID:~$ echo ${arr[*]}小米 锤子 华为ss@ANDROID:~$ arr[c]="oppop"ss@ANDROID:~$ echo ${arr[*]}小米 锤子 oppopss@ANDROID:~$

“华为”被换成了“oppop”(没用过oppop手机,应该是拼错了^_^)

 

索引数组和关联数组以上语法通用,赶快试下吧!

 

总结


 

  • 数组分为索引数组和关联数组
  • 定义关联数组前需要使用"declare -A 变量名"声明变量为关联数组
  • 封面图片是一个带格子的盒子,有多少个格子就可以放多少个东西,是不是有点类似我们的数组。这也许是程序员都爱穿格子衬衫的原因吧。
  • 我等下搜索下oppop怎么拼

 

未经允许不得转载:作者:小牛, 转载或复制请以 超链接形式 并注明出处 小牛博客
原文地址:《Shell基础教程04 数组》 发布于2019-06-19

分享到:
赞(0) 打赏

评论 抢沙发

9 + 2 =


Shell基础教程04 数组

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

网站公告

开启新征程,加油少年。 2019-10-6

开启新征程,加油少年。

不知不觉,都十月多了,即将面临找工作的我来说是尤为重要的,

不管怎么说,十月加油吧。

我已阅读
Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册