zoukankan      html  css  js  c++  java
  • shell数组

    数组介绍:

    数组就是相同数据类型的元素按一定顺序排列的集合。(类似python列表)

    作用:缩短喝简化程序开发

    小知识:(echo打印变量的个数和变量)

     a=123456
     echo ${#a}
    6
    echo ${a}  || echo $a
    123456

    数组的定义和读取:

    方法:

    1.取数组的长度

    array=(value1 value2 value3 value4)

    array=(1 2 3 4 5 6)
    echo ${#array[@]}
    6
    echo ${#array[*]}
    6

    第二种方法定义数组(key-value键值对)

    array=([1]=one [2]=two [3]=three)

    echo ${array[@]}
    one two three

    (非0开始打印)

    [root@www 2017_08_31.sh]# echo ${array[1]}
    one
    [root@www 2017_08_31.sh]# echo ${array[3]}
    three
    [root@www 2017_08_31.sh]# echo ${array[2]}
    two

    第三种定义数组的方法

    array[0]=a array[1]=b array[2]=c array[3]=d
    echo ${array[@]}                           
    a b c d

    第四种定义数组的方法(最常用):将命令的执行结果赋值给数组

    array=($(ls))

    2.打印数组元素(shell元数是从第0个开始打印的)

    echo ${array[0]}
    1

    [root@www 2017_08_31.sh]# echo ${array[1]}
    2
    [root@www 2017_08_31.sh]# echo ${array[2]}
    3
    类推......
     echo ${array[6]} (没有打印空行)

    将数组全部打印

    echo ${array[@]}   
    1 2 3 4 5 6
    echo ${array[*]}
    1 2 3 4 5 6

    3.数组赋值

    数组的增加

    echo ${#array[@]}
    6
    array[6]=7
    echo ${array[@]}
    1 2 3 4 5 6 7
    echo ${#array[@]}
    7
    array[7]=7
    echo ${array[@]}
    1 2 3 4 5 6 7 7

    数组替换

    array[7]=8
    echo ${array[@]}
    1 2 3 4 5 6 7 8

    array[0]=xiaochao
    echo ${array[@]}
    xiaochao 2 3 4 5 6 7 8

    4.删除单个的元数:

    unset array[0]  
    echo ${array[@]}
    2 3 4 5 6 7 8

    5.整个数组的删除

     unset array
    echo ${array[@]}

    6.数组的字符串的截取和替换(支持变量的子串替换)

    1)截取1号到3号数组元素,包括1和3

    array=(1 2 3 4 5)
    echo ${array[@]:1:3}
    2 3 4

    2)从3号元素开始截取2位

    echo ${array[@]:3:2}
    4 5

    替换

    3)将数组中的元素5替换为xyz(源数组未被修改)

    echo ${array[@]/5/xyz}

    4)改动数组将数组中的元素5修改为xyz并赋值给新数组

     array1=(${array[@]/5/xyz})

    echo ${array1[@]}
    1 2 3 4 xyz

    5)替换

    从最左边替换

    echo ${array[@]#1}

    2 3 4 5

    从最右边替换

    echo ${array[@]%5}   
    1 2 3 4

  • 相关阅读:
    Eclipse SVN插件设置
    经典语录-每日积累-05
    Shell基础语法,运算符,循环和判断语句和设置启动参数
    iOS-Jenkins自动化打包集成
    App版本升级相关
    Java-数组和集合简单使用
    Java-内部类简单使用
    Callkit被拒
    Java-Finalize(GC)和类与类和接口之间的关系
    经典语录-每日积累-04
  • 原文地址:https://www.cnblogs.com/xiaoyongzhuo/p/7459600.html
Copyright © 2011-2022 走看看