你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

linux shell数组方面一些操作的总结

[复制链接]
gaosmile 发布时间:2020-5-5 22:55
正文   

linux shell在编程方面比windows 批处理强大太多,无论是在循环、运算。已经数据类型方面都是不能比较的。下面是个人在使用时候,对它在数组方面一些操作进行的总结。

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 shell 的数组已经很强大了,常见的操作已经绰绰有余了。

    收藏 评论0 发布时间:2020-5-5 22:55

    举报

    0个回答

    所属标签

    STM32团队

    意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


    最新内容

    关于
    我们是谁
    投资者关系
    意法半导体可持续发展举措
    创新与技术
    意法半导体官网
    联系我们
    联系ST分支机构
    寻找销售人员和分销渠道
    社区
    媒体中心
    活动与培训
    隐私策略
    隐私策略
    Cookies管理
    行使您的权利
    官方最新发布
    STM32N6 AI生态系统
    STM32MCU,MPU高性能GUI
    ST ACEPACK电源模块
    意法半导体生物传感器
    STM32Cube扩展软件包
    关注我们
    微信公众号二维码 微信公众号
    手机版二维码 手机版