【问题标题】:Bash script argument not being parsed未解析 Bash 脚本参数
【发布时间】: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 这样的多字符选项。

标签: bash shell getopts


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-08-27
    • 2013-04-21
    • 2015-12-25
    • 2013-10-09
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多