Expect是一個(gè)免費(fèi)的編程工具語(yǔ)言,用來(lái)實(shí)現(xiàn)自動(dòng)和交互式任務(wù)進(jìn)行通信,而無(wú)需人的干預(yù)。
Expect需要Tcl編程語(yǔ)言的支持,要在系統(tǒng)上運(yùn)行Expect必須首先安裝Tcl。
主要shell命令:
#!/usr/bin/expect: 告訴os用什么腳本
*set *: 設(shè)置參數(shù)
spawn:spawn是進(jìn)入expect環(huán)境后才可以執(zhí)行的expect內(nèi)部命令
*expect *:是期待返回什么
send:發(fā)送命令
exit:退出
示例:一段傳輸文件的shell
#!/usr/bin/expect
set src_file [lindex $argv 0]
set username [lindex $argv 1]
set host_ip [lindex $argv 2]
set dest_file [lindex $argv 3]
set password [lindex $argv 4]
spawn scp $src_file $username@$host_ip:$dest_file
expect {
"(yes/no)?"
{
send "yes\n"
expect "*assword:" {send "$password\n"}
}
"*assword:"
{
send "$password\n"
}
}
expect "100%"
expect eof
參考:
http://www.cnblogs.com/iloveyoucc/archive/2012/05/11/2496433.html