zoukankan      html  css  js  c++  java
  • shell-数组访问

    下标访问

    与其他语言(java,c++)一样,shell访问数组的具体元素是通过下标来指定的,格式为:
    array[n]

    array表示数组名,n为下标(n从0开始,所以访问元素n,下标为n-1)

    #!/bin/bash
    array=(1 3 4 5 6)
    echo "访问第四个元素 ${array[3]}"
    echo "访问第二个元素 ${array[1]}"
    

    输出结果为:

    统计数组长度

    使用系统变量$#来统计长度,语法为:
    ${#array[@]}${#array[*]}

    $*表示将结果以“参数1 参数2 ....”的形式将结果以一个字符串的形式返回。
    $@表示将结果以“参数1” “参数2” “参数3” ....“参数n”的形式将结果逐个返回每个参数。实际差别不大

    例如:

    #!/bin/bash
    array=(1 2 3 4 5 6 7 8 9 10)
    
    echo ${#array[@]}
    
    echo ${#array[*]}
    

    输出结果为:

    循环遍历数组

    for循环(类C风格)来遍历数组

    #!/bin/bash
    array=(Mon Tue Wed Thu Fri Sat Sun)
    j="${#array[*]}"
    for ((i=0;i<$j;i++))
    do
            echo "${array[$i]}"
    done
    

    输出结果为:

    切片获取部分数组元素

    所谓切片就是截取部分元素或某个元素的部分内容,其语法为:
    ${array[@]:起始位置:终止位置:}或${array[*]:起始位置:终止位置}
    实例:

    #!/bin/bash
    program=(c c++ c# java python PHP perl go .net js shell)
    
    echo "第三到第六的语言为:${program[*]:2:5}"
    
    echo "第七到第十一的语言为:${program[@]:6:10}"
    

    输出结果为:

    替换数组元素

    对数组元素进行替换,语法为:
    ${array[@]/old/new}
    直接在切片的代码里面加吧

    #!/bin/bash
    program=(c c++ c# java python PHP perl go .net js shell)
    echo "替换Java这个家伙 ${program[@]/java/VisualBasic}"
    a=${program[@]/PHP/java}
    b=(${program[@]/shell/Ruby})      #不加园括号就会变成字符串,加了得到的还是数组
    echo
    echo $a
    echo
    echo ${b[@]}
    

    输出结果为:

  • 相关阅读:
    Django基础
    XSS BOT编写
    Weblogic ssrf+Redis Getshell学习
    CORS与JSONP配置不当所导致的信息泄露
    VulnHub FristLeaks 1.3
    攻防世界--REVERSE新手练习区writeup
    2019第三届强网杯线下3道RW
    SCTF2019--WEB 2题复现
    文件上传--利用.htaccess绕过黑名单
    CEF 与 QML 对比
  • 原文地址:https://www.cnblogs.com/hxlinux/p/13047262.html
Copyright © 2011-2022 走看看