[英]Using getopts in Bash
我想在 Bash 脚本中使用 getopts,如下所示:
while getopts ":hXX:h" opt; do
case ${opt} in
hXX ) Usage
;;
h ) echo "You pressed Hey"
;;
\? ) echo "Usage: cmd [-h] [-p]"
;;
esac
done
背后的想法是我想要两个标志-h
或--help
允许用户能够使用 HELP 以指导如何使用脚本和另一个以h
开头但类似于-hxx
的标志x
是什么。
我如何区分这两个,因为即使我按下--hxx
标志它也会自动执行帮助标志。 我认为在getopt
中呈现它们的顺序与此无关。
“外部” getopt
程序(不是内置在getopts
中的 bash)支持“--longoptions”。 它可以用作命令行选项的预处理器,从而可以使用 bash 内置的 getopt(或其他不支持长选项的程序)使用长选项。
有关详细信息,请参阅: 使用 getopts 处理长短命令行选项。
#! /bin/bash
TEMP=$(getopt -l help -- h "$@")
eval set -- "$TEMP"
while getopts h-: opt ; do
case "$opt" in
h) echo "single" ;;
-) case "$OPTARG" in
-help) echo "Double" ;;
*) echo "Multi: $OPTARG" ;;
esac ;;
*) echo "ERROR: $opt" ;;
esac
done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.