• shell——数组


    • 默认从0开始索引;也可以单独(像字典一样)pid[35420]=httpd -k ssl,
    • 只能是一维的
    • bash4.0增加了关联数组

    数组赋值:

    declare -a myarray声明数组

    • 一次一个(可以定义稀疏数组)

    numberarray[0]=zero

    numberarray[1]=one

    numberarray[3]=three

    • 一次全部

    students=( Python Java Php C )

    stat=( $(cat /proc/$$/stat) )

    先将$IFS设置成换行符
    IFS="
    "
    hosts=( `cat /etc/hosts` )逐行读取文件
    shs=( *.sh )
    for sh in "${shs[@]}  #将当前目录的sh文件放到目录
    do
        echo $sh
    done
    • 按索引

    主要用于创建稀疏数组

    arr=( [0]=zero [2]=two [3]=three [7]=seven)

    • 从输入读取

    read -a dice

    while IFS=: read -a userdetails
    do
        :
    done < /etc/passwd

    [lixn@Fedora24 bash_learn]$ readarray -n 4 -s 2 food  读入数组 -O定义初始的索引值  -n最大行数  -s从输入的开头跳过几行

    访问

    ${shs[0]}

    ${ shs [@] }

    循环遍历

    for name in ${students[@]}

    当数组中值带有空格时,需要使用双引号,在for循环遍历时要使用"${array[@]}"  (不带引号和使用*有区别)

    数组长度${#students[@]} 或 ${#students[*]}

    ${#students}返回第一个索引对应的值得长度

    ${#students[1]}

    索引可以使用变量

    ${shs[@]:0:1}从0开始取一个,并不和索引对应

    ${shs[@]:3}从3开始的所有

    关联数组

    declare -A beatles声明关联数组

    3 declare -A beatles
    4 beatles=( [singer]=John [bassist]=Paul [drummer]=Ringo [guitarist]=George )
    5
    6 for instrument in ${!beatles[@]}
    7 do
    8 echo "The ${instrument} is ${beatles[$instrument]}"
    9 done

    数组操作

    1)数组复制

    hobbies=( "${array[@]}" )  通过赋值复制,但不适用于稀疏数组

    2)向数组追加元素

    通过复制方法追加hobbies=( "${array[@] diving} )

    使用索引追加hobbies[${#hobbies[@]}}]=rowing

    组合两个数组array2+=("${array1[@]}")

    3)从数组中删除元素

    赋空值得到的一个稀疏数组array[3]=    此时使用${array[3]+"Item 3 is set"}, 有返回Item...    ${array[3]?string}

    unset array[3]    此时使用${array[3]+"Item 3 is set"}, 返回空,无效

    array=清除第一个元素;unset array 清除数组

  • 相关阅读:
    Flask 【第三篇】使用DBUtils实现数据库连接池和蓝图
    Flask 【第二篇】Flask基础
    Flask 【第一篇】Flask简介
    Django 【第二十五篇】Django admin源码解析
    Django 【第二十四篇】Django admin简单使用
    Django 【第二十三篇】优化查询
    Django 【第二十二篇】ModelForm
    Django 【第二十一篇】中介模型以及优化查询以及CBV模式
    Django 【第二十篇】后端CORS解决跨域问题
    查询续与ajax
  • 原文地址:https://www.cnblogs.com/daduryi/p/6762641.html
Copyright © 2020-2023  润新知