zoukankan      html  css  js  c++  java
  • shell进阶篇之数组应用案例

      数组中可以存放多个值。 Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小。

      与大部分编程语言类似,数组元素的下标由0开始。

    Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

    my_array=(value1 ... valuen)


    1.定义一个数组
      my_array=(A B C D)

    2.读取数组中的元素

        读取方式:{my_array[index]}

      echo "第一个元素为: ${my_array[0]}"
      echo "第二个元素为: ${my_array[1]}"
      echo "第三个元素为: ${my_array[2]}"
      echo "第四个元素为: ${my_array[3]}"

    3.获取数组中所有元素

    shell使用@ 或 * 可以获取数组中的所有元素

    #!/bin/bash

    my_array=(A B C D)

    echo "数组的元素为: ${my_array[*]}"

    echo "数组的元素为: ${my_array[@]}"

    4.获取数组的长度

    #!/bin/bash

    my_array=(A B C D)

    echo "数组元素个数为: ${#my_array[*]}"

    echo "数组元素个数为: ${#my_array[@]}"

    5.接下来我们用数组结合函数写一个菜单

    #!/bin/bash
    
    MENU_EXPLAIN=(
    "退出" "状态"   "更新"   "回滚"      "重启"    "停止" "免密"      "日志" "资源"      "登陆"
    )
    
    MENU_LIST=(
    "exit" "status" "update" "roollback" "restart" "stop" "SEND_KEY"  "log"  "mem_disk"  "ssh_login"
    )
    
    main(){
    clear
    ARRAY_NUM_MENU_LIST=${#MENU_EXPLAIN[*]}
    ARRAY_NUM=$(expr $ARRAY_NUM_MENU_LIST - 1)
    while true
      do
        echo -e "主菜单操作:"
        for I_MENU_LIST in ${!MENU_EXPLAIN[@]}
          do
            echo -e "    ${MENU_EXPLAIN[${I_MENU_LIST}]} -----> $I_MENU_LIST"
        done
        read -p "选择要执行的操作:" NUM_MENU_LIST
        if [  "$NUM_MENU_LIST" = 0 ];then
           exit
        elif [[  "$NUM_MENU_LIST" =~ ^[0-9]+$ ]] && [ ${NUM_MENU_LIST} -le ${ARRAY_NUM} ];then
            clear
            ${MENU_LIST[${NUM_MENU_LIST}]}
        else
           clear
           echo "输入0-${ARRAY_NUM_MENU_LIST}的数字"
        fi
    done
    }
    
    main
  • 相关阅读:
    【Cocos2d-X游戏实战开发】捕鱼达人之游戏场景的创建(六)
    WPF-24:绘制正多边形
    长假引起的系统审批流的变更的思考
    Linux shell编程02 shell程序的执行 及文件权限
    poj2787 算24
    REVERSE关键字之REVERSE索引
    设计模式读书笔记-----备忘录模式
    乔布斯的基本原则 (斯卡利访谈录 )
    MediaInfo源代码分析 1:整体结构
    Python 入门教程 9 ---- A Day at the Supermarket
  • 原文地址:https://www.cnblogs.com/llddhh/p/12655553.html
Copyright © 2011-2022 走看看