zoukankan      html  css  js  c++  java
  • 2020-04-09 linux数组

    1.数组定义

    $ a=(1 2 3 4 5 6)
    $ echo $a
    1

    注意:数组元素用空格分隔,=两边不要空格,echo $a 只返回数组第一个元素

    2.数组读取与赋值

    2.1 获取数组长度

    $ echo ${#a[@]}
    6

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

    2.2 获取数组元素

    $ echo ${a[0]}
    1
    $ echo ${a[*]}
    1 2 3 4 5 6

    注意:下标是*或@表示获取全部元素

    2.3赋值

    $ a[1]=11
    $ a[3]=33
    $ echo ${a[@]}
    1 11 2 33 4 5 6

    注意:如果下标不存在,自动添加新一个数组元素,

    2.4删除元素

    $ a=(1 2 3 4 5)
    $ unset a
    $ echo ${a[*]}
    $ a=(1 2 3 4 5)
    $ unset a[1]
    $ echo ${a[*]}
    1 3 4 5
    $ echo ${#a[*]}
    4

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

     3.特殊使用

    3.1分片

    $ a=(1 2 3 4 5)
    $ echo ${a[*]:1:3}
    2 3 4
    $ b=(${a[*]:2:9})
    $ echo ${b[*]}
    3 4 5
    $ c = ${a[*]:2:9}
    $ echo $c
    3 4 5

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

    注意:指定的长度如果大于数组本身,只会取到数组最后一个元素,也不会出错

    3.2替换

    $ a=(1 2 3 4 5)
    $ echo ${a[*]/3/33}
    1 2 33 4 5
    $ echo ${a[*]}
    1 2 3 4 5
    $ a=(${a[*]/3/33})
    $ echo ${a[*]}
    1 2 33 4 5

    调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容

    注意:替换有一个比较迷的操作

    $ a=(12 222 345)
    $ echo ${a[*]/2/88}
    188 8822 345
    $ b=(${a[*]/2/88})
    $ echo {b[*]}
    188 8822 345
    $ echo ${b[*]/2/88}
    188 88882 345
    这里把每一个元素里都查找一遍再替换,并且只替换一次,比如a[2]中222,就只替换一次变成8822,
  • 相关阅读:
    Python学习第二天
    Python学习第一天
    linux下使用命令修改IP地址
    Java消息队列
    转:《什么是敏捷软件测试》
    测试流程优化
    MacOS安装使用Kettle
    用OneNote写博客的方法
    Matlab给三维点云添加高斯噪声和随机噪声
    如何高效完成英文文献翻译
  • 原文地址:https://www.cnblogs.com/cxl-blog/p/12670263.html
Copyright © 2011-2022 走看看