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
.
我写了一个 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
.