
getopt
可能であれば、GNUコマンドを使用してコマンドライン引数を解析するときに他の-?
オプションでどのように識別できますか? opstringでエスケープする方法はありますか?
答え1
牛に似た一種の栄養選択項目のインポートGNUを使用したコマンドgetSelect()引数とオプションを解析するライブラリ関数です。
これマンページ getopt(3)状態:
getopt()がオプション文字を認識しない場合は、stderrにエラーメッセージを印刷してその文字をに保存してからを
optopt
返します?
。呼び出し側プログラムはopterrを0に設定してエラーメッセージを防ぐことができます。
したがって、?
「不明なオプション」を表すために使用され、オプション値として使用することはできません。 (このオプション-?
は不明なオプションと区別できません。)
答え2
あなたができるオプション文字列として疑問符文字を引数として使用することは非常に悪い考えであることを認識してください。ほとんどのシェルはこれをglob構文の一部として使用するためです(つまり、前の文字が一致で選択的に使用されることも、使用されないこともあります)。 。ゴミをめくるのは、?
ユーザーが逃げる必要があるため難しいでしょう。
一種のヘルプオプションを生成する場合、一般的な構文はsumの短いオプションと長い-h
オプションを見つけることです--help
。
答え3
疑問符を使った効果を得るには助ける、不明なオプションが実際に疑問符文字であるかどうかを簡単に確認してください。
たとえば、不明なオプションが疑問符ではないたびに、「不明なオプション」というメッセージを印刷したいとします。次回はいつも私に電話してください使用法機能。
\?) if [ "$OPTARG" != "?" ] ; then echo "Unknown option \"$OPTARG\"" ; fi
usage
h
一般的に私はヘルプオプションとu
オプションに同意して使用しますusage
が、オプションを試したhost
結果がuser
好きです。
PS。私はそれを使用しています強く打つソラリス10から。