1

我目前正在这样的脚本中解析选项:

while getopts ":ia" OptionArgument; do
case $OptionArgument in
    i ) echo "bli";;
    a ) echo "bla";;
    * ) echo "flag not known";;
    ? ) echo "unknown parameter";;
esac
done

每个解析选项和标志都有效 - 除了这个:? ). 因此,如果我用类似的东西调用我的脚本,./MyScript hjrfgdskjgh它会正确通过循环——尽管它应该在最后一行用? ).
我还尝试从":ia"或使用\?或删除引号. )- 没有任何效果!我做错了什么??

4

2 回答 2

4

?字符具有特殊含义,请参阅http://tldp.org/LDP/abs/html/special-chars.html#WILDCARDQU 您不能使用未转义或未引用的字符。您必须使用./script.sh -'?'或调用脚本./script.sh -\?

于 2013-06-12T14:26:05.987 回答
0

*匹配任何东西。在它下面放任何东西都是没有意义的,只有在*不匹配的情况下才会匹配。

于 2013-06-12T14:14:51.250 回答