美文网首页
shell 流程控制

shell 流程控制

作者: 墨线宝 | 来源:发表于2023-09-15 12:24 被阅读0次

    流程控制

    if条件判断

    可以使用if来实现多路跳转,条件通常使用test命令

    #if语句的语法
    if condition1
    then
        command1
    elif condition2 
    then 
        command2
    else
        commandN
    fi
    

    如果then需要和if放在同一行的话,使用;分隔

    fi用来结束if语句,相当于endif

    #变量赋值等号两端没有空格
    a=10
    b=20
    if [ $a == $b ]
    then
       echo "a 等于 b"
    elif [ $a -gt $b ]
    then
       echo "a 大于 b"
    elif [ $a -lt $b ]
    then
       echo "a 小于 b"
    else
       echo "没有符合的条件"
    fi
    

    "[" 符号前后、 "]"前边都要有空格

    case条件控制

    匹配到模式则执行对应的命令,执行结束后跳出case语句

    #case语句的语法
    case 值 in
    模式1)
        command1
        ;;
    模式2)
        commandN
        ;;
    esac
    
    echo "input your name:"
    read name
    case $name in
        zhanghe) echo "你是管理员,权限最大";;
        zhangsan) echo "你是谁呀,张三吗";;
        *) echo "你我可不认识";;
    esac
    
    流程控制
    • 取值后边一定要用in
    • 变量的值会匹配)符号前面的字符串
    • case支持通配符
      • *: 任意长度任意字符
      • ?: 任意单个字符
      • a|b: a或b
    • 如果匹配的话,会执行该case下的语句,直到发现;;时停止
    • 如果没有匹配,就会执行最后*)这一行的内容
    • 如果没有匹配到不想执行任何内容的话,可以不写*)

    一定注意;;如果不加;;的话,执行会出错的

    https://zhhll.icu/2021/linux/shell/流程控制/

    本文由mdnice多平台发布

    相关文章

      网友评论

          本文标题:shell 流程控制

          本文链接:https://www.haomeiwen.com/subject/pcgvvdtx.html