• 6. Shell 流程控制


    1. 条件选择流程

    1.1 if

    #!/bin/bash
    # if 格式
    #if condition
    #then
    #    command1 
    #    command2
    #    ...
    #    commandN 
    #fi
    
    # 如果写出一行一般格式如下:
    # if [ condition ]; then command1; fi
    
    num1=10
    num2=20
    
    if [ $num1 -lt $num2 ]
    then
        echo 'true'
    fi
    
    
    if [ $num1 -lt $num2 ] ; then echo 'true'; fi
    if test $num1 -lt $num2 ; then echo 'true'; fi
    

    1.2 if else

    #!/bin/bash
    # if else 格式
    #if condition
    #then
    #    command1 
    #    ...
    #else
    #    command1
    #    ...
    #fi
    
    num1=10
    num2=20
    
    if [ $num1 -gt $num2 ]
    then
        echo 'true'
    else
        echo 'false'
    fi
    
    

    1.3 if else-if else

    #!/bin/bash
    # if else-if else 格式
    #if condition
    #then
    #    command1 
    #    ...
    #elif condition
    #    command1
    #    ...
    #then
    #    command1
    #    ...
    #else
    #    command1
    #    ...
    #fi
    
    num1=10
    num2=20
    
    if [ $num1 -eq $num2 ]
    then
        echo '=='
    elif  [ $num1 -gt $num2 ]
    then
        echo 'true'
    else
        echo 'false'
    fi
    
    

    2. 循环控制

    2.1 for

    #!/bin/bash
    #格式
    #for var in item1 item2 ... itemN
    #do
    #    command1
    #    command2
    #    ...
    #    commandN
    #done
    #
    #for var in item1 item2 ... itemN; do command1; command2… done;
    
    loop_val=(1 2 3 4 5)
    for val in ${loop_val[@]}
    do
        echo $val
    done
    
    for val in ${loop_val[@]} ; do echo $val; done
    
    for str in 'This is a string'
    do
        echo $str
    done
    

    2.2 while

    #!/bin/bash
    #while condition
    #do
    #    command
    #done
    
    
    index=1
    while [ $index -le 5 ]
    do
        echo $index
        let "index++"
    done
    

    2.3 until 循环

    #!/bin/bash
    #until condition
    #do
    #    command
    #done
    
    index=1
    until [ $index -gt 5 ]
    do
        echo $index
        let "index++"
    done
    

    2.4 case

    esac(就是case反过来)作为case语句的结束标记,每个case分支用右圆括号,用两个分号表示break。

    #!/bin/bash
    #case 值 in
    #模式1)
    #    command1
    #    ...
    #    ;;
    #模式2)
    #    command1
    #    ...
    #    ;;
    #esac
    
    echo '输入 1 到 4 之间的数字:'
    echo '你输入的数字为:'
    read aNum
    case $aNum in
        1)  echo '你选择了 1'
        ;;
        2)  echo '你选择了 2'
        ;;
        3)  echo '你选择了 3'
        ;;
        4)  echo '你选择了 4'
        ;;
        *)  echo '你没有输入 1 到 4 之间的数字'
        ;;
    esac
    

    3. 跳出循环

    3.1 break命令

    while :
    do
        echo -n "输入 1 到 5 之间的数字:"
        read aNum
        case $aNum in
            1|2|3|4|5) echo "你输入的数字为 $aNum!"
            ;;
            *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
                break
            ;;
        esac
    done
    

    3.2 continue命令

    while :
    do
        echo -n "输入 1 到 5 之间的数字: "
        read aNum
        case $aNum in
            1|2|3|4|5) echo "你输入的数字为 $aNum!"
            ;;
            *) echo "你输入的数字不是 1 到 5 之间的!"
                continue
                echo "游戏结束"
            ;;
        esac
    done
    
  • 相关阅读:
    人民币对美元汇率的大数据分析与预测【完整代码】
    碧瑶答疑网——用户使用手册和反馈
    碧瑶答疑网—系统设计和任务分配
    碧瑶答疑网之选题报告
    碧瑶答疑网-软件需求规格说明书
    UEgCWbGGLA
    https://www.cnblogs.com/ggzjf/
    66666
    继承-代码块-接口
    人民币对澳元汇率的大数据分析与预测
  • 原文地址:https://www.cnblogs.com/zjzyh/p/5892817.html
Copyright © 2020-2023  润新知