optparseはエスケープ文字をそのまま入力すると期待した結果と異なる挙動を示すことがあります。
これは一部のコマンド(sortなど)にも言えます。
しばらくしたら忘れてそうなのでメモ。
試しに次のようなプログラムを書いてみました。
from optparse import OptionParser def optSettings(): usage="hogehoge" version="0.0.1" parser = OptionParser(usage=usage, version=version) parser.add_option( "-a", action = "store", type = "str", dest = "test" ) return parser.parse_args() if __name__ == '__main__': options, args = optSettings() print >>>,options.test
このプログラムで次のように実行すれば"hogehoge"が帰ってきます。
% python optparse_test.py -a "hogehoge" >>> hogehoge
'\t'や'\n'はこうなります。
% python optparse_test.py -a "\t" >>> \t
'\t'の場合は次のような入力によってタブを出力できます。
'#'はわかりやすいように入れているだけです。
% python optparse_test.py -a $'#\t#' >>> # #
ちなみに始めに書いたsortコマンドの場合はこんな感じで。
% sort -t $'\t' -k 2 -nr
おわり。