AUTOEXPECT(1) | FreeBSD General Commands Manual | AUTOEXPECT(1) |
名前
autoexpect -セッションを監視することによりExpectスクリプトを生成する書式
autoexpect [ args ] [ program args... ]イントロダクション
autoexpectは、あなたとプログラムとの対話を監視し、その対話を再現するExpectスクリプトを生成する。直線的なスクリプトなので、スクリプトを手作業で書くのに比べ相当な時間を節約できる。たとえあなたがExpectのエキスパートだとしても、対話のより機械的な部分を自動化するためにautoexpectを使うと便利であることが分かるだろう。 autoexpectの生成したスクリプトの一部をカットアンドペーストした方がゼロから書き始めるよりとても簡単である。そしてもしあなたが初心者だとしたら、Expectについて何も知らなくても autoexpectの起動方法を習うだけで用が足りるかもしれない。
% autoexpect -f nist ftp ftp.cme.nist.gov
autoexpectが生成するスクリプトは動作が保証されている訳ではないという点を理解しておくことが重要である。なぜならば、確かな事柄や時々間違うことを推測しなければならないのだから。しかしながら、通常はこれらの問題を特定し解決することはとても簡単である。
典型的な問題点は:
- •
-
タイミングの問題。驚くほど多くのプログラム(rn, ksh, zsh, telnet, 等)やデバイス(例えばモデム) は、プロンプトの後の早すぎるキー入力を無視する。もし特定の場所でスクリプトが切れてしまう場合は、先の送信の直前に短いスリープの追加を試みよ。
autoexpect -c
-Cフラグはconservativeモードを切り換えるためのキーを定義する。次は、^Lを切り換えキーと定義し(non-conservativeモードで)実行する例である。 (注: ^Lはコントロール+Lを示す)
autoexpect -C ^L
次は、^Lを切り換えキーと定義しconservativeモードで実行する例である。
autoexpect -c -C ^L
- •
-
エコーの問題。多くのプログラムが文字をエコーする。例えば、シェルに対して "more"とタイプすると、autoexpectには以下のように見える:
you typed 'm',
computer typed 'm',
you typed 'o',
computer typed 'o',
you typed 'r',
computer typed 'r',
...
そのプログラムに対する特有の知識が無いと、エコーされた文字を待ってから、次の文字をタイプしているのかどうかを知ることは困難である。 autoexpectは、文字列がエコーされていると見なすと、元々の対話手順のように細切れに対話するのではなく、グループとして全てを一度に送信できると判断する。このためスクリプトが読み易くなる。しかし、本当にエコーを待ってから入力しなければならない場合には、間違った動作となることが考えられる。
- •
-
変化の問題。 autoexpectは対話で生じたすべての文字をスクリプト内に記録する。この事は、どの文字が重要でどの文字は置き換えられるかを判断できるため、好ましいことである。
autoexpect -p
-Pフラグはpromptモードを切り換えるためのキーを定義する。次は、^Pを切り換えキーと定義し(non-promptモードで)実行する例である。 (注: ^Pはコントロール+Pを示す)
autoexpect -P ^P
次は、^Pを切り換えキーと定義しpromptモードで実行する例である。
autoexpect -p -P ^P
他のフラグ
-quiet フラグは、autoexpectのメッセージ出力を非表示にする。
autoexpect -P ^P -C ^L -Q ^Q
様式(STYLE)
Expectプログラムのための様式があるか否か分からないが、明らかにautoexpectはどのような様式のモデルにも縛られるべきではない。例えば、コンピュータ生成スクリプト用に意図された Expectプログラムの特徴を autoexpectは利用している。だから、autoexpectによって生成されたかのようなスクリプトを忠実に記述してみてはならない。関連項目
"Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Programs" by Don Libes, O'Reilly and Associates, January 1995.著者
Don Libes, National Institute of Standards and Technology30 June 1995 |