使用 getopts 的 Bash 脚本不接受多个参数

问题描述

我正在尝试用 bash 构建一个脚本并构建一个 getopts 循环。我有两个没有任何参数的选项(x 和 h),另外两个有。但是我的 while 循环因只采用一个选项而失败,并且不采用任何其他参数,我该如何使其工作? m、p 和 s 可以有参数,而 x 和 h 没有参数

while getopts ":m:p:s:x:h:"  option; do
case "${option}" in
m)
HOME_DIR=${OPTARG}
echo "The home dir is $HOME_DIR"
;;
p) URL=${OPTARG}
echo "The url is $URL"
;;
s) ID=${OPTARG}
echo "The server id is $ID"
;;
x) SKIP_SERVICE=${OPTARG}
echo "The skip service is $SKIP_SERVICE"
;;
h)
    echo "Usage: $0 [options]"
    echo " "
    echo "options:"
    echo "-h,show help"
    echo "-m,set home directory - defaults to HOME"
    echo "-p,enter URL"
    echo " "
    exit 0
    ;;
esac
done

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)