【发布时间】:2021-12-03 21:19:15
【问题描述】:
我编写了一个 bash 脚本来帮助我构建几个 Web 应用程序的过程。 有不同的构建模式,所以我尝试使用标志(getopts)来实现它
开发=假; clean_dest=假; 全部=假; 而 getopts c:clean-dest:a:all:d:dev:t:target: flags 做 案例“${flags}”在 d) 开发=真;; 开发)开发=真;; c) clean_dest=true;; 清洁目的地)清洁目的地=真;; a) 全部=真;; 全部)全部=真;; t) 目标=${OPTARG};; 目标) 目标=${OPTARG};; 经社理事会 完毕如果我用 -d -t "someTarget" 调用它,它可以工作,但是当我用 -c -a -d -t "someTarget" 调用它时,它不会考虑 '-c' 和 '-a' .
如果我交换 while 中的参数顺序,另一个标志组合会中断。
我做错了什么?
提前感谢您。
【问题讨论】:
-
c:中的冒号表示-c接受一个参数。所以-c -a表示标志是-c,它的参数是-a。 -
顺便说一句,
getopts不支持像-target这样的多字符选项。