Shell使用getoopts处理多参数的例程

#!/bin/bash
# 自定义options参数shell脚本代码例程
# funtion函数
demo1() {
    echo "demo1"
}
demo2() {
    echo "demo2"
}
demo3() {
    echo "demo3"
}
demo4() {
    echo "demo4"
}
demo5() {
    echo "demo5"
}
demo6() {
    echo "demo6"
}
demo7() {
    echo "demo7"
}
demo8() {
    echo "demo8"
}
demo9() {
    echo "demo9"
}

demo10() {
    echo "demo10"
}

# usage function 参数对应功能解析
usage() {
    echo "Usage:$0 [ -h | -? ] [ -a num ] [ -b letter ] [ -c string ]" 1>&2
    echo "NUM:1~3"
    echo "letter:A~D"
    echo "string:haha oop sos"
    exit 0
}

while getopts ':ha:b:c:' options; do
    case "$options" in
    h)
        usage
        ;;
    a)
        val=${OPTARG}
        case "$val" in
        1)
            demo1
            ;;
        2)
            demo2
            ;;
        3)
            demo3
            ;;
        *)
            echo "Unknown this command $val!!";
            usage
            ;;
        esac
        ;;
    b)
        val=${OPTARG}
        case "$val" in
        A)
            demo4
            ;;
        B)
            demo5
            ;;
        C)
            demo6
            ;;
        D)
            demo7
            ;;
        *)
            echo "Unknown this command $val!!";
            usage
            ;;
        esac
        ;;
    c)
        val=${OPTARG}
        case "$val" in
        haha)
            demo8
            ;;
        oop)
            demo9
            ;;
        sos)
            demo10
            ;;
        *)
            echo "Unknown this command $val!!";
            usage
            ;;
        esac
        ;;
    ?)  
        echo "Error option!!! -${OPTARG} requires an argument."
        usage
        ;;
    esac
done
shift $(($OPTIND - 1));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KIZAI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值