我想在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
,让用户能够使用帮助,以便指导如何使用脚本和另一个标志,它以h
开头,但它类似于-hxx
,其中x
是任何东西。
我如何区分这两个,因为即使我按下--hxx
标志,它也会自动执行帮助标志。我认为在getopt
中呈现它们的顺序与此无关。
发布于 2019-10-18 14:22:17
‘外部’getopt
程序(不是内置在getopts
中的bash )支持'--longoptions‘。它可以用作命令行选项的前置处理器,从而可以通过bash内置getopt使用长选项(或其他不支持长选项的程序)。
有关详细信息,请参阅:Using getopts to process long and short command line options。
#! /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
https://stackoverflow.com/questions/58444947
复制相似问题