最終更新:2013-01-24 (木) 15:07:08 (4103d)  

expect
Top / expect

対話的なプログラムとのやりとりを自動化するプログラム

http://expect.sourceforge.net/

概要

  • スクリプトの指示に従って、対話的なプログラムと"会話"する

  • 下記を自動化
    $ telnet hoge       # マシンhoge に telnet した
    hoge login: foo     # ログイン名 foo 
    Password:           # パスワ-ドを入力した
    hoge:~$ ls          # リストを取る
    ...
    hoge:~$ exit        # 作業終了
    logout
    Connection closed by foreign host.
  • expectで自動実行
    #!/bin/sh                 # shell スクリプトにしてみた 
    
    H=hoge                 # telnet するマシン名を設定
    U=foo                 # ログイン名を設定
    PW=******             # パスワ-ドを設定
    
    expect -c "               # expect コマンドを実行
    set timeout 20
    spawn telnet $H        # expect コマンドの管理下でtelnetを実行する
    expect login:\  ; send \"$U\r\"     # login: が出たらログイン名を打ち込む
    expect sword:\  ; send \"$PW\r\"    # password: が出たらパスワ-ドを打ち込む
    expect \"$ \" ; send \"ls\r\"            # $ が出たら ls を打ち込む
    expect \"$ \" ; send \"exit\r\"          # $ が出たら exit を打ち込む
    "

関連

参考