【问题标题】:Command line args with getopt not working properly带有 getopt 的命令行参数无法正常工作
【发布时间】:2013-06-27 18:57:40
【问题描述】:

我正在为我的 bourne 脚本测试 getopt,我发现了一些非常有趣的结果。

#!/bin/sh

params=$(getopt lLo:p:t: "$*")
exit 0

如果我执行以下操作:

./myscript -z blah -o legal -p another_legal

不出所料,我会得到:

getopt: illegal option -- z
getopt: illegal option --
getopt: illegal option -- b
getopt: illegal option -- l
getopt: illegal option -- a
getopt: illegal option -- h

但如果我这样做:

./myscript -o legal -p another_legal -z blah 

getopt 没有注意到这一点。任何想法为什么?

【问题讨论】:

    标签: linux bash getopt sh


    【解决方案1】:

    "$*" 将函数收到的所有参数作为单个参数传递给getopt。所以你实际上是在运行getopt lLo:p:t: "-o legal -p another..."你想要"$@"

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 2013-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多