我正在使用getopts跟踪提供给我的脚本的选项。但是,我希望能够检测指定的选项是否无效。我可以这样做,但它总是会回显我没有写过的消息。
结果
my.sh: illegal option -- x
Error: Invalid option was specified --
Run Code Online (Sandbox Code Playgroud)
我想要达到的目标
Error: Invalid option was specified --
Run Code Online (Sandbox Code Playgroud)
我的代码片段
while getopts g:r: option; do
case $option in
g) guesses=$OPTARG;;
r) range=$OPTARG;;
?) echo "Error: Invalid option was specified -- $OPTARG";;
esac
done
Run Code Online (Sandbox Code Playgroud)
我怎样才能达到预期的结果?
假设您想要两个短选项-g和-r,以下示例将不会illegal option在传递 时触发消息-x:
while getopts ":g :r" option; do
case $option in
g) guesses=$OPTARG;;
r) range=$OPTARG;;
?) echo "Error: Invalid option was specified -$OPTARG";;
esac
done
Run Code Online (Sandbox Code Playgroud)