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,
  • 相关阅读:
    php升级5.3到5.4,5.5,5.6
    JNI NDK开发Crash错误定位 调试
    【转】移动端App测试实用指南
    【转】web测试内容及工具经典总结
    什么是比特币(bitcoin)
    读《活着》
    读《我们终将逝去的青春》
    自动make工具--CMake
    如何像黑客一样思考_转
    httpd在嵌入式中应用
  • 原文地址:https://www.cnblogs.com/cxl-blog/p/12670263.html
Copyright © 2011-2022 走看看