【问题标题】:Using getopts with no argument for help output使用不带参数的 getopts 帮助输出
【发布时间】:2016-12-09 02:05:59
【问题描述】:

您好,我正在创建一个使用 getopts 的 bash 脚本。 现在我想创建一个“-h”参数来获得帮助。 但是每次我都必须给参数一个参数。

Now

test.sh -h test

What I want

test.sh -h
help
help
help



while getopts :c:s:d:h:I:p:r FLAG; do
  case $FLAG in


        s)
                SOURCE=$OPTARG
                ;;
        d)
                DESTINATION=$OPTARG
                ;;
        I)
                ISSUE=$OPTARG
                ;;
        c)
                CUSTOMER=$OPTARG
                test -e /etc/squid3/conf.d/$CUSTOMER.conf
                customer_available=$?
                ;;
        p)
                PORT=$OPTARG
                ;;
        h)      HELP=$OPTARG
                echo help

【问题讨论】:

  • 提出质疑。不知道该怎么做,如果 $OPTARG 不存在,那么这也行不通
  • 使用while getopts h:c:s:d:I:p:r FLAG; do
  • 抱歉,问题不够清楚。请提出问题,您究竟希望完成什么。
  • 我想在我的脚本中有一个“-h”参数,当我通过 test.sh -h 启动脚本时 .. 给我文本输出。我的这个 -h 参数在我启动它时总是需要一个参数.. test.sh -h xyz .. 我不想写那个 xyz。

标签: bash arguments getopt manpage getopts


【解决方案1】:

选项后面的: 表示该选项需要一个参数。

OPTARG 变量包含您传递给选项的参数。

如果您不想要参数,请删除 h 之后的 : 以及 HELP=$OPTARG 行。

while getopts :c:s:d:hI:p:r FLAG; do
...
     h)      echo help
...
done

如需进一步参考,请查看此link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 2012-04-05
    • 2020-04-12
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多