Getopts - 具有多个选项的命令

Getopts - 具有多个选项的命令

我正在制作一个命令脚本,想知道如何组合多个选项

该命令的一般用法如下:

用法:myCommand [-fpr] [-n 计数] [-s 大小] [-u 用户] [-d 目录]

我的问题是关于 [-fpr] 选项的。如果用户输入 myCommand -fpr 或 myCommand -fp,在 while 循环中,我该如何组合/连接这些选项?

while getopts "fpr" opt; do
    case $opt in
    f)
        echo `-l`
        echo "-f was triggered!" >&2
        ;;
    p)
            echo `-h`
        echo "-p was triggered!" >&2
        ;;
    r)
        echo "-r was triggered!" >&2
        ;;

    \?)
        echo "Invalid option: -$OPTARG\n" >&2
        usage
        ;;
    esac
done

答案1

如果我正确理解了你的问题,你正在试图弄清楚如何处理与-fpr相同的问题-f -p -r。在这种情况下,getopts这样做对你有用。

如果您想使用“长选项”-fpr并且不希望它与 相同-f -p -r,那么您需要放弃getopts,并寻找支持长选项的示例(请注意末尾getopt缺少)。例如,参见shttp://linux.die.net/man/1/getopt了解详情。

相关内容