Bash 脚本参数未被解析

Bash script argument not being parsed

我写了一个 bash 脚本来帮助我完成几个网络应用程序的构建过程。 有不同的构建模式,所以我尝试使用标志 (getopts)

来实现它

    dev=false;
    clean_dest=false;
    all=false;
    
    while getopts c:clean-dest:a:all:d:dev:t:target: flags
    do
        case "${flags}" in
            d) dev=true;;
            dev) dev=true;;
            c) clean_dest=true;;
            clean-dest) clean_dest=true;;
            a) all=true;;
            all) all=true;;
            t) target=${OPTARG};;
            target) target=${OPTARG};;
        esac
    done

如果我用 -d -t "someTarget" 调用它,它可以工作,但是当我用 -c -a -d -t "someTarget" 调用它时,它不会考虑 '-c' 和 '-一个'.

如果我交换 while 中参数的顺序,另一个标志组合会中断。

我做错了什么?

先谢过了

通过遵守 getopts 的语法解决;我不得不将 while 行更改为 while getopts cadt: flags.