# Expect ## 定義 Expect は、UNIX の対話的プログラム(passwd・su・fsck・telnet 等)を疑似端末(pseudo-tty)で介在し、パターンマッチと自動応答によって非対話的に実行できるようにする、Tcl ベースの高水準スクリプト言語およびその処理系である。National Institute of Standards and Technology の Don Libes が開発し、米国政府資金による開発のためパブリックドメインで公開された([[@1990__LISA__Using expect to Automate System Administration Tasks]])。中核コマンドは `spawn`(プロセス起動)・`expect`(出力パターン待機)・`send`(入力送信)・`interact`(制御をユーザーへ一時委譲)の 4 つである。 ## 未解決の問い - Expect のその後の発展(Tcl/Tk との統合、autoexpect、DejaGnu などの派生ツール)は本ソースでは扱われていない。関連ソースが入ったら追記する。 - 1990年当時 Perl・Emacs との比較は著者の定性的判断にとどまる。後年の文献でこの評価がどう変わったか(あるいは Expect 自体がどれだけ使われ続けたか)は未確認。 ## 未編纂の観察 - [概要] Expect は「対話プロセス制御」という限定領域に特化することで、同じ問題を解けるとされる Perl(disk footprint 270K)や Emacs より軽量(70K、起動時間ほぼゼロ)であると著者は主張する(Source: [[@1990__LISA__Using expect to Automate System Administration Tasks]])。 - [セキュリティ] Expect はパスワードの平文保存という別のセキュリティリスクを生みうる一方、対話的にパスワードだけを一度尋ねて残りのダイアログを事前定義済みスクリプトに任せる方式で、平文保存を避けたまま自動化できる(Source: [[@1990__LISA__Using expect to Automate System Administration Tasks]])。 ## 関連 - [[Don Libes]] — 開発者。 - [[National Institute of Standards and Technology]] — 開発資金の提供元・所属組織。 ## 出典 - [[@1990__LISA__Using expect to Automate System Administration Tasks]]