• linux 循环判断、数组、循环


    通过一个循环展示数组、循环、Case条件判断结构
    #/bin/bash
    if [ $# == 0 ];then
       echo "please input the name"
       exit 1
    fi
    parm1=$1
    
    #存入数组
    for((i=0;i<=${#parm1};i++))
    do
    arr[$i]=${parm1:$i:1}
    done
    
    #循环显示数组元素
    for((i=0;i<=${#arr[@]};i++))
    do
       echo ${arr[$i]}
    done
    
    #循环显示数组元素的另一种写法
    for n in ${arr[*]}
    do
        echo $n
    done
    
    #循环用while的方式
    declare -i cnt=0
    while [ $cnt -le ${#arr[@]} ];do
        echo ${arr[$cnt]}
        let cnt=cnt+1 #或cnt=$((cnt+1))
    done
    
    #while结合case语句
    declare -i cnt=0
    while [ $cnt -le ${#arr[@]} ];do
       #echo ${arr[$cnt]}
       txt=${arr[$cnt]}
       case $txt in
           a) echo "aa";;
           g) echo "gg";;
           b | f)
              echo "b|f";;
          [ce])
              echo "c and"
              echo "[ce]"
              ;;
           *)
              echo "not match";;
       esac

    变量总结:
    1、变量都可直接使用,无需定义,默认为字符型
    2、数字类型要定义,方式为:declare -i varname
    3、数字加运算用:let var=var+1 或 var=$((var+1)),其他运算格式一致,操作符不同而已
    3、字符串长度:${#varname}
    5、字符串内容截取:${varname:pos:len} {变量名:开始位置:长度},省略长度则从开始到最后

    数组总结
    1、数组赋值用arr[1]=值
    2、读取组数值var=${arr[1]}
    3、数组元素总数var=${#arr[@]}
    4、数组所有元素var=${arr[*]},如用在echo可在一行显示所有元素内容;也可用在for n in 格式则
    可循环读取元素,该种方式类似于c#的foreach枚举方式

    Case总结
    1、case格式为case $var in
                       match item1)
                             语句 ;;
                       match item2)
                             语句 ;;
                       *)
                             语句...
                             语句...
                             ;;
        esac

    2、匹配多个项目: match item1 | match item2))
    3、匹配多个项目的另一种写法:[abc]) 只要是a或b或c都满足,并不是满足abc
    4、匹配项目之外:*)

  • 相关阅读:
    chrome下不支持select里面的option单击事件!
    实现自适应宽度圆角按钮的方法
    jQuery分析(取DOM元素)
    字符串转换成JSON
    限制数量不可为0,且不大于1000
    计算用字符串表示的整数四则运算的值
    计算用字符串表示的个位数四则运算的值(栈)
    螺旋数组
    Joseph问题(循环链表)
    C/C++计算阶乘n!末尾所含0的个数
  • 原文地址:https://www.cnblogs.com/doclaim/p/3139597.html
Copyright © 2020-2023  润新知