expect 基于tcl演变而来,是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。说白了,expect就是一套用来实现自动交互功能的软件。
我们运行命令、脚本或程序时,这些命令、脚本或程序都需要从终端输入某些继续运行的指令,而这些输入都需要人为的手工进行。而利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。


常用命令

spawn 启动新的进程
expect 从进程接收字符串
send 用于向进程发送字符串
interact 命令主要用于退出自动化,进入人工交互,需要和spawn 配合使用
eof 退出命令窗口

exp_continue 循环匹配

$argc 表示参数个数
而参数值存放在$argv中,比如取第一个参数就是[lindex $argv 0]

条件语句后要有一个空格隔开
if {} {} eles {}

#!/bin/bash
mv /home/duanyu/git/common_api/target/common_api-1.0.1.war /home/duanyu/git/common_api/target/ROOT.war

expect ./combot.exp
#!/usr/bin/expect   
set timeout 30
spawn scp /home/duanyu/git/common_api/target/ROOT.war sto@192.168.1.46:/usr/local/commo_apache-tomcat-8.5.35_8080/webapps
expect {
"password:" {send "123\r"}
}
expect eof
spawn ssh sto@192.168.1.46
expect {
"password:" {send "123\r"}
}
expect {
"\\\$" {send "cd /usr/local/www/common_apache-tomcat-8.5.35_8080/logs \r"}
}
expect {
"\\\$" {send "sudo tail -f  catalina.out\r"}
}
expect {
"密码:" {send "123\r"}
}

interact 

 

posted on 2019-06-25 11:33  小桥听雨  阅读(689)  评论(0)    收藏  举报