Centos自动化expect使用笔记

《Centos自动化expect使用笔记》
#判断是否有安装 expect , 没有则安装
if ! [ -x "$(command -v expect)" ]; then
  yum -y install expect
fi

#批量执行
#执行expect 使用这个方法可以有效解决php不释放内存的bug
for((i=0;i<1;i++));
do

/usr/bin/expect <<EOF
set timeout 120000

#被监听的程序必须是连续的,如果中途退出,则监听结束
spawn /usr/bin/php /usr/share/nginx/html/77book.cn/mix.77book.cn/artisan catch:comic --action=test06 --time=1

expect {
  "work_done" {
    interact
    send "/usr/bin/php /usr/share/nginx/html/77book.cn/mix.77book.cn/artisan catch:comic --action=test06 --time=1"
    expect "work_done"
  }
}  
expect eof


EOF

done
exit

//块结构,必须是成对出现, 相当于if(){} endif
expect "(xxx)?"{
}
expect eof

名词解释

spawn: 监听指定的某个命令,对命令的输出作出(预)的处理,英文翻译是产卵;引发,促生
expect 期待 等待指定命令的输出,如果匹配,则执行下面的操作
send 在命令行中发行一个命令
interact :执行完毕后把持交互状态,把控制台,这时候就可以进行你想要进行的操作了。如果没有这一句,在登陆完成之后就会退出,而不是留在远程终端上。
点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注