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、ループを正しく通過しますが、最後の行で? ). orを使用し
て引用符を削除しようとしましたが、何も機能しません! 私は何を間違っていますか??":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 に答える