前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >shell脚本中的数组常见使用方式

shell脚本中的数组常见使用方式

作者头像
qsjs
发布2021-11-24 12:57:26
2.9K0
发布2021-11-24 12:57:26
举报
1. 数组定义:

shell中数组的定义是使用 小括号来表示的,其中数组元素之间用空格作为分隔,比如:

代码语言:javascript
复制
$ a=(1 2 3 abcd China)
2. 数组的访问:

a. 访问特定的数组元素,比如访问第2个元素,那么利用下标index=1进行访问: index支持负值,表示从后向前访问, 第一个元素的index =0, 如果从后向前,那么最后一个元素index 可以表示为index=-1.

代码语言:javascript
复制
$ echo ${a[1]}
2
$ echo ${a[-4]}
2

b. 访问所有的数组元素,这时候index 用* 表示就可以了;如下:

代码语言:javascript
复制
$ echo ${a[*]}
1 2 3 abcd China

c. 获取数组元素的个数: 在上述获取所有元素的前面加上一个# 就可以了,如下:

代码语言:javascript
复制
$ echo ${#a[*]}
5
3. 数组的修改:

a. 根据index 进行修改:

代码语言:javascript
复制
$ a[2]="b"
$ echo ${a[2]}
b

b. 追加元素到数组中:

代码语言:javascript
复制
shadow@DESKTOP-SRI6HMB ~
$ echo ${a[*]}
1 2 b abcd China
shadow@DESKTOP-SRI6HMB ~
$ a[${#a[*]}]="append_value"
shadow@DESKTOP-SRI6HMB ~
$ echo ${a[*]}
1 2 b abcd China append_value
4. 数组名称中含有shell变量:

当数组名称中含有shell变量的时候,此时随着shell变量的变化,那么引用的数组自然也就不同;此时可以通过如下的方式实现 变量的嵌套: 嵌套变量有两个符号,一个用来组合成完整的变量名称,另一个用于 标记组合后的内容是一个变量,而后一个符号需要用 单引号括起来,剩余的部分需要用双引号括起来;然后用echo 来显示这个变量,但因为 单引号 引用的字符不会被shell解释,所以输出结果是单引号,此时用eval 来调用echo 语句就可以实现解析了;具体实例如下:

代码语言:javascript
复制
$ echo ${a1[*]}
a b c
$ echo ${a2[*]}
1 2 3 abcd China                                   #可以看到数组a1,a2的值是不同的;
$ i=1
$ eval echo '$'"{a$i[*]}"                      #此时 变量i=1, 所以显示的是数组变量a1的值;
a b c
$ i=2                                                  
$ eval echo '$'"{a$i[*]}"                        #更改变量 i=2, 此时显示的就是数组变量a2的值;
1 2 3 abcd China
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021/11/7 上,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 数组定义:
  • 2. 数组的访问:
  • 3. 数组的修改:
  • 4. 数组名称中含有shell变量:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档