Linux培训
达内IT学院

400-111-8989

在Linux系统中shell数组是如何建立和使用的?


今天小编为大家分享的文章是关于在Linux系统中shell数组是如何建立和使用的,熟悉Linux系统的小伙伴都知道Linux中shell在编程方面强于Windows,无论是在循环、运算、还是数据类型方敏Windows都是不能比较的。接下来小编就为大家介绍一下,shell数组是如何建立和使用的。

在Linux系统中shell数组是如何建立和使用的

1、数组定义

[chengmo@centos5 ~]$ a=(1 2 3 4 5)

[chengmo@centos5 ~]$ echo $a

一对括号表示是数组,数组元素用“空格”符号分割开。

2、数组读取与赋值

· 得到长度:

[chengmo@centos5 ~]$ echo ${#a[@]}

5

用${#数组名[@或*]} 可以得到数组长度

· 读取:

[chengmo@centos5 ~]$ echo ${a[2]}

3

[chengmo@centos5 ~]$ echo ${a[*]}

1 2 3 4 5

用${数组名[下标]} 下标是从0开始 下标是:*或者@ 得到整个数组内容

· 赋值:

[chengmo@centos5 ~]$ a[1]=100

[chengmo@centos5 ~]$ echo ${a[*]}

1 100 3 4 5

[chengmo@centos5 ~]$ a[5]=100

[chengmo@centos5 ~]$ echo ${a[*]}

1 100 3 4 5 100

直接通过 数组名[下标] 就可以对其进行引用赋值,如果下标不存在,自动添加新一个数组元素

· 删除:

[chengmo@centos5 ~]$ a=(1 2 3 4 5)

[chengmo@centos5 ~]$ unset a

[chengmo@centos5 ~]$ echo ${a[*]}

[chengmo@centos5 ~]$ a=(1 2 3 4 5)

[chengmo@centos5 ~]$ unset a[1]

[chengmo@centos5 ~]$ echo ${a[*]}

1 3 4 5

[chengmo@centos5 ~]$ echo ${#a[*]}

4

直接通过:unset 数组[下标] 可以清除相应的元素,不带下标,清除整个数据。

3、特殊使用

· 分片:

[chengmo@centos5 ~]$ a=(1 2 3 4 5)

[chengmo@centos5 ~]$ echo ${a[@]:0:3}

1 2 3

[chengmo@centos5 ~]$ echo ${a[@]:1:4}

2 3 4 5

[chengmo@centos5 ~]$ c=(${a[@]:1:4})

[chengmo@centos5 ~]$ echo ${#c[@]}

4

[chengmo@centos5 ~]$ echo ${c[*]}

2 3 4 5

直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。

· 替换:

[chengmo@centos5 ~]$ a=(1 2 3 4 5)

[chengmo@centos5 ~]$ echo ${a[@]/3/100}

1 2 100 4 5

[chengmo@centos5 ~]$ echo ${a[@]}

1 2 3 4 5

[chengmo@centos5 ~]$ a=(${a[@]/3/100})

[chengmo@centos5 ~]$ echo ${a[@]}

1 2 100 4 5

调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。

以上就是小编今天跟大家分享的文章了,希望本篇文章能够对喜欢Linux系统的小伙伴们有所帮助,也希望小伙伴能学会Linux中shell数组的建立和使用技巧,为你的工作有所帮助。想要了解更多关于Linux相关知识,记得关注达内Linux培训官网哦。

来源:程默

#/chengmo/archive/2010/09/30/1839632.html

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:为什么企业都喜欢使用Linux操作系统
下一篇:Linux经验之谈-Linux运维经常会遇到的问题及解决办法

学物联网工程好就业吗?

图像算法工程师发展前景

大数据运维工资一般多少?

运维工程师经常加班吗?

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省