美文网首页
Shell流程控制

Shell流程控制

作者: 村东头老骥 | 来源:发表于2020-02-09 18:53 被阅读0次

    Shell流程控制

    简单流程控制语句

    单分支if语句

    语法格式

    if [ 条件 ] 
    then
        指令 
    fi
    

    #!/bin/bash
    # 单if演示
    # 定义一个本地变量,用于接受脚本执行时候的参数
    a="$1"
    if [ "${a}" == "man" ]
    then
        echo "您的性别是男"
    fi
    

    双分支if语句

    语法格式

    if [ 条件 ] 
    then
        指令 1 
    else
        指令 2 
    fi
    

    a="$1"
    
    if [ "${a}" == "nan" ]
    then
        echo "您的性别是男"
    else
        echo "您的性别是女"
    fi
    
    

    多分支if语句

    语法格式

    if [ 条件 ] 
    then
        指令 1 
    elif [ 条件 2 ] 
    then
        指令 2 
    else
        指令 3 
    fi
    

    a="$1"
    
    if [ "${a}" == "nan" ]
    then
        echo "您的性别是男"
    elif [ "${a}" == "nv" ]
    then
        echo "您的性别是女"
    else
        echo "您的性别暂时不知道"
    fi
    

    case选择语句

    语法格式

    case 变量名 in 
        值 1)
            指令 1
            ;; 
        值 2)
            指令 2
            ;; 
        值 3) 
            指令 3
            ;; 
    esac
    

    a="$1"
    
    case "${a}" in 
        "start")
            echo "服务器启动中"
            ;;
    
        "stop")
            echo "服务器关闭中"
            ;;
        "restart")
            echo "服务器重启中..."
            ;;
        *)
            echo "$0 脚本的使用方式": $0 [start|stop|restart]
            ;;
    esac
    
    

    注意 :

    • 首行关键字是case,末行关键字esac
    • 选择项后面都有 )
    • 每个选择的执行语句结尾都有两个分号;

    for循环

    语法格式

    for 值 in 列表
    do 
        执行语句
    done
    

    #!/bin/bash
    
    for i in $(ls /root)
    do
        echo "${i}"
    done
    // ------------------------------
    # bash for.sh 
    master.zip
    oldCode
    software
    test.py
    vim.txt
    workspace
    

    while 循环语句

    语法格式

    while 条件 
    do 
        执行语句
    done
    

    #!/bin/bash
    a=1
    while [ "${a}" -lt 5 ]
    do
        echo "${a}"
        a=$((a+1))
    done
    

    注意 : 条件的类型
    命令、[[ 字符串表达式 ]]、(( 数字表达式 ))

    until循环 语句

    使用场景 : 只要条件不满足的时候,就一直循环下去

    语法格式

    until 条件 
    do 
        执行语句 
    done
    

    #!/bin/bash
    a=1
    until [ "${a}" -eq 5 ]
    do 
        echo "${a}"
        a=$((a+1))
    done
    

    Shell函数

    定义函数以及调用函数

    函数名(){ 
        函数体
     }
    // 调用函数
    函数名
    

    #!/bin/bash
    
    # 定义函数
    sayHello(){
        echo "hello word"
    }
    
    # 调用函数
    sayHello
    

    # 传入参数
    函数名 参数
    # 函数体调用参数
    函数名(){ 
      函数体 $n 
    }
    

    #!/bin/bash
    
    # 定义函数
    sayHello(){
            echo "hello word $1"
            echo "hello word $2"
            echo "hello word $3"
    }
    
    # 调用函数
    # sayHello kevin Tom cat
    sayHello $1 $2 $3
    

    相关文章

      网友评论

          本文标题:Shell流程控制

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