expectでTeraTermマクロ風にバッチ実行

Last-modified: 2014-08-16 (土) 12:41:50 (2120d)

expect を使うと、TeraTerm?マクロのように対話バッチが実行できる。

sudo apt-get install expect

でインストール(Ubuntu)

#!/usr/bin/expect -f

set timeout 5
spawn  ssh -i key/keyfile user@192.168.0.100
expect "Enter passphrase for key"
send   "*********\n"
expect "Last login"
send   "pwd\n"
interact

こんな感じで。

Manpage of EXPECT
http://www.linux.or.jp/JM/html/expect/man1/expect.1.html

Expectの書き方
http://kansai.anesth.or.jp/gijutu/expect/howto-expect.htm

引数

test.expect で作成

#!/usr/bin/expect -f

spawn bash
puts $argv
puts $argc
set a [lindex $argv 1]
puts $a
interact

$ ./test.expect abc def ghi

spawn bash
abc def ghi
3
def