2017-01-04 15 views
0

私はExpectのマンページを見て、Googledしましたが、私は期待しているものが-rではありません。私はexpectスクリプトでこの"-r"はExpectの "expect -r PATTERN"コマンドの意味とは何ですか?

expect -r "\r\n\r\n" 

のように前に使用し、このオプションを見て、それがために何を把握することはできません。誰も私がこの答えを見つけるためにどこに見えるか知っていますか?あらかじめありがとう

+0

あなたは '-r'ですが、' \ r'や '-re'はありませんか? – RomanPerekhrest

+1

完全なコマンドを追加してください。 – adiesner

+0

はい、それはrです。完全なコマンドは 'expect -r' somePattern "' – chromechris

答えて

5

これはまた、私が誰かがexpect -regexp PATTERNを使用しているのを見たときにちょっと混乱させました。マニュアルページには、expect -re PATTERNしかないからです。私はexpect -regexp PATTERNを試してみました。

いつか私は期待のsource codeをダウンロードして見て、その理由を見つけました。ソースコードで

expect.cに機能parse_expect_args()を参照)、expect「次のように複数のオプションは、実際に定義される:

static char *flags[] = { 
    "-glob", "-regexp", "-exact", "-notransfer", "-nocase", 
    "-i", "-indices", "-iread", "-timestamp", "-timeout", 
    "-nobrace", "--", (char *)0 
} 

は、関数ではTcl呼び出し」コマンドオプションを解析するためのTcl_GetIndexFromObj(interp, objPtr, tablePtr, msg, flags, indexPtr)を。 AccordintへTcl_GetIndexFromObj()manualobjPtr場合

...マッチが起こるの文字列値がの1に同じであることが非空でユニークな省略形である場合tablePtrまたは内の文字列tablePtrTCL_EXACTフラグの文字列のうちの1つのためにが指定されていません。 flags = 0(なしTCL_EXACT)ので、manページに記載さ-gl-re-exと...

ここExpect通話Tcl_GetIndexFromObj()それぞれ実際-glob-regexp-exactです。 -rで始まる-regexpというオプションが1つしかないので、-r-regexp(と-re)と同じ意味になります。

個人的には、他の人を混乱させないように、文書化されたオプションを使用することをお勧めします。

+0

うわー!ハハ、たくさんの掘り出し物!それはすごく、ありがとうございます。 – chromechris

関連する問題