[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
expect
- To: bug@argv.org
- Subject: expect
- From: Koichi INOUE <inoue@argv.org>
- Date: 02 May 2000 18:19:18 +0900
- Delivered-To: mailing list bug@argv.org
- Mailing-List: contact bug-help@argv.org; run by ezmlm
- Organization: Accessibility Research Group for the Visually Impaired(ARGV)
- User-Agent: T-gnus/6.14.3 (based on Gnus v5.8.5) REMI/1.14.1(Mushigawaōsugi) FLIM/1.13.2 (Kasanui) APEL/10.2Emacs/20.5 (i386--freebsd) MULE/4.0 (HANANOEN)
井上@今日は有給です。
わが家ではRTA50iをダイアルアップルータとして使っていますが、いつもshow
logコマンドに最後だけ見せてくれる機能があったらいいなあ、と感じていまし
た。
で、前から目を付けていたexpectを使ってこういうものをつくって(?)みまし
た。
これを showlog という実行ファイルにセーブしておいて、
$ showlog | tail
とか、
$ showlog | tail -100 | grep -i incoming
とかやると便利ではないかと思っています。
今日初めてexpectのマニュアルを読んで最低限の理解で書いたので、もっと賢い
方法がたくさんありそうです。
tclベースなので、ものすごくおくが深そうです。
なお、使うときはPASSSTRING という文字列を適当にパスワードに変えてくださ
い(ようするにファイルにパスワードを書かないといけません。)
また、わが家ではRTA50iのホスト名がinogw、設定で
console prompt inogw
としているので、その変も適当な文字列に変えてください。
それから、
console lines infinity
としてlogの出力などが途中で止まらないようにしないとうまく動きません。
console character euc
も便利でしょう。
要するにTCLでの変数の設定/参照方法を知らないという致命的な状態で書いたの
で、もっと美しいのをつくった方は私にください(^^;;)
----showlog
#!/usr/local/bin/expect -f
set timeout -1
spawn telnet inogw
expect {
"Password: "
}
send "PASSSTRING\n"
expect {
{inogw> }
}
exp_send_user "logged in\n"
send "show log\n"
expect {
{inogw> }
}
exp_send_user "\n"
send "exit\n"
----end of showlog
--
Koichi Inoue, ARGV
E-Mail: inoue@...