Shell 之打印菜单


方法一

#!/bin/bash
#Author:mcsiberiawolf
#Time:2019-02-12 11:15:49
#Name:menu.sh
#Version:V1.0
#Description: This is a test script.


RETVAR=0
# 定义脚本路径
path=/server/scripts

# 如果路径不存在就创建
[ -d "$path" ] && mkdir -p $path


# 定义帮助函数
function Usage(){
    echo "Usage:$0 argv"
    return 1
}


# 定义安装服务函数
function InstallService(){
    if [ $# -ne 1 ]; then
        Usage
    fi
    local RETVAR=0
    echo "start installing ${1}."

    sleep 2

    if [ ! -x "$path/${1}.sh" ]; then
        echo "$path/${1}.sh does not exist or can not be exec."
        return 1
    else
        $path/${1}.sh 
        return $RETVAR
    fi
}

# 定义主函数
function main(){
    # 菜单提示
    PS3="`echo Pls input the num you want:`"
    # select 循环,菜单内容列表,列表中有空格加引号    
    select var in "Install lamp" "install lnmp" "exit"
    do
        case "$var" in
            "Install lamp")
                InstallService lamp
                RETVAR=$?
                ;;
            "Install lnmp")
                InstallService lamp
                RETVAR=$?
                ;;
            exit)
                echo bye.
                return 3
                ;;
            *)
                echo "The num you input must be {1|2|3}"
                echo "Input ERROR"
        esac
    done
    exit $RETVAR
}

main

方法二

#!/bin/bash
#Author:mcsiberiawolf
#Time:2019-02-12 11:15:49
#Name:menu.sh
#Version:V1.0
#Description: This is a test script.


RETVAR=0
path=/server/scripts

[ -d "$path" ] && mkdir -p $path

function Usage(){
    echo "Usage:$0 argv"
    return 1
}

function InstallService(){
    if [ $# -ne 1 ]; then
        Usage
    fi
    local RETVAR=0
    echo "start installing ${1}."

    sleep 2

    if [ ! -x "$path/${1}.sh" ]; then
        echo "$path/${1}.sh does not exist or can not be exec."
        return 1
    else
        $path/${1}.sh 
        return $RETVAR
    fi
}


function main(){
    PS3="`echo Pls input the num you want:`"
    select var in "Install lamp" "install lnmp" "exit"
    do
        case "$REPLY" in
            1)
                InstallService lamp
                RETVAR=$?
                ;;
            2)
                InstallService lamp
                RETVAR=$?
                ;;
            3)
                echo bye.
                return 3
                ;;
            *)
                echo "The num you input must be {1|2|3}"
                echo "Input ERROR"
        esac
    done
    exit $RETVAR
}

main

参考文章

跟老男孩学Linux运维 Shell编程实战

优质内容筛选与推荐>>
1、VTK三维重建(2)-根据脚部骨骼CT的三维重建和显示
2、前WPF PM 用WPF写的一个XAML即时编辑器 - kaxaml
3、菜鸟教程perl总结
4、JS获取当前使用的浏览器名字以及版本号
5、: error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号