zoukankan      html  css  js  c++  java
  • Linux Shell脚本编程case条件语句

    1,判断一个数字是否则在1,2,3之中.

    #!/bin/bash
    read -p "pls input a number:" n
    case "$n" in
        1)
            echo "变量是1"
            ;;
        2)
            echo "变量是2"
            ;;
        3)
            echo "变量是3"
            ;;
        *)
            echo "pls input a number between 1 and 3"
            exit;
    esac

    2,多级if语句改写

    #!/bin/bash
    read -p "pls input a number:" n
    if [ $n -eq 1 ]; then
        echo "$n是变量1"
    elif [ $n -eq 2 ]; then
        echo "$n是变量2"
    elif [ $n -eq 3 ]; then
        echo "$n是变量3"
    else
        echo "pls input a number between 1 and 3"
    fi

    3,if..else嵌套,实现

    #!/bin/bash
    read -p "pls input a number:" n
    if [ $n -eq 1 ]; then
        echo 1
    else
        if [ $n -eq 2 ]; then
            echo 2
        elif [ $n -eq 3 ]; then
            echo 3
        else
            echo "pls input a number [1-3]"
        fi
    fi

    4,判断 分数等级

    #!/bin/bash
    
    read -p "pls input score to test level:" score
    
    if [ $score -ge 90 ]; then
        echo "优秀"
    elif [ $score -ge 80 ]; then
        echo "良好"
    elif [ $score -ge 70 ]; then
        echo "中等"
    elif [ $score -ge 60 ]; then
        echo "及格"
    else
        echo "不及格"
    fi

    5,给文字加颜色

    #!/bin/bash
    RED_COLOR='e[1;31m'
    GREEN_COLOR='e[1;32m'
    YELLOW_COLOR='e[1;33m'
    BLUE_COLOR='e[1;34m'
    RESET_COLOR='e[0m'
    
    echo '
        1, 悟空
        2, 八戒
        3, 唐僧
        4, 白龙马
    '
    read -p "pls input a number:" n
    
    case $n in
        1)
            echo -e  "${RED_COLOR}悟空${RESET_COLOR}"
            ;;
        2)
            echo -e  "${GREEN_COLOR}八戒${RESET_COLOR}"
            ;;
        3)
            echo -e  "${YELLOW_COLOR}唐僧${RESET_COLOR}"
            ;;
        4)
            echo -e  "${BLUE_COLOR}白龙马${RESET_COLOR}"
            ;;
        *)
            echo "you need input a number in {1|2|3|4}"
    esac

    另一种写法:

    #!/bin/bash
    RED_COLOR='e[1;31m'
    GREEN_COLOR='e[1;32m'
    YELLOW_COLOR='e[1;33m'
    BLUE_COLOR='e[1;34m'
    RESET_COLOR='e[0m'
    
    function menu(){
        cat <<END
        1, 悟空
        2, 八戒
        3, 唐僧
        4, 白龙马
    END
    }
    
    function select_type(){
            read -p "pls input a number:" n
            case $n in
                1)
                    echo -e  "${RED_COLOR}悟空${RESET_COLOR}"
                    ;;
                2)
                    echo -e  "${GREEN_COLOR}八戒${RESET_COLOR}"
                    ;;
                3)
                    echo -e  "${YELLOW_COLOR}唐僧${RESET_COLOR}"
                    ;;
                4)
                    echo -e  "${BLUE_COLOR}白龙马${RESET_COLOR}"
                    ;;
                *)
                    echo "you need input a number in {1|2|3|4}"
            esac
    }
    
    function main(){
        menu
        select_type
    }
    
    main

    读取命令行参数,给内容设置颜色

    #!/bin/bash
    RED_COLOR='e[1;31m'
    GREEN_COLOR='e[1;32m'
    YELLOW_COLOR='e[1;33m'
    BLUE_COLOR='e[1;34m'
    RESET_COLOR='e[0m'
    
    if [ $# -ne 2 ]; then
        echo "Usage $0 input {red|green|yellow|blue}"
        exit
    fi
    
    case $2 in
        red)
            echo -e "${RED_COLOR}$1${RESET_COLOR}"
            ;;
        green)
            echo -e "${GREEN_COLOR}$1${RESET_COLOR}"
            ;;
        yellow)
            echo -e "${YELLOW_COLOR}$1${RESET_COLOR}"
            ;;
        blue)
            echo -e "${BLUE_COLOR}$1${RESET_COLOR}"
            ;;
        *)    
            echo "usage $0 input {red|green|yellow|blue}"
            exit
    esac

    修改成函数调用方式

    #!/bin/bash
    function toColor(){
            RED_COLOR='e[1;31m'
            GREEN_COLOR='e[1;32m'
            YELLOW_COLOR='e[1;33m'
            BLUE_COLOR='e[1;34m'
            RESET_COLOR='e[0m'
    
            if [ $# -ne 2 ]; then
                echo "Usage $0 input {red|green|yellow|blue}"
                exit
            fi
    
            case $2 in
                red)
                    echo -e "${RED_COLOR}$1${RESET_COLOR}"
                    ;;
                green)
                    echo -e "${GREEN_COLOR}$1${RESET_COLOR}"
                    ;;
                yellow)
                    echo -e "${YELLOW_COLOR}$1${RESET_COLOR}"
                    ;;
                blue)
                    echo -e "${BLUE_COLOR}$1${RESET_COLOR}"
                    ;;
                *)    
                    echo "usage $0 input {red|green|yellow|blue}"
                    exit
            esac
    }
    
    function main(){
        toColor $1 $2
    }
    
    main $*
  • 相关阅读:
    [它山之石] 一件事情,假设你不能说清楚,十有八九你就做不好
    《硅谷》观后感:创业难,毋忘初心,且行且珍惜
    POJ
    Android Service完全解析,关于服务你所需知道的一切(上)
    Android最佳性能实践(四)——布局优化技巧
    Android最佳性能实践(一)——合理管理内存
    深入解析开源项目之Universal-Image-Loader(二)硬盘---缓存篇
    Image-Loader LruMemoryCache
    LinkedHashMap<String, Bitmap>(0, 0.75f, true) LinkedHashMap的加载因子和初始容量分配
    深入解析开源项目之Universal-Image-Loader(二)内存---缓存篇
  • 原文地址:https://www.cnblogs.com/ghostwu/p/9114024.html
Copyright © 2011-2022 走看看