#判断是否有安装 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 :执行完毕后把持交互状态,把控制台,这时候就可以进行你想要进行的操作了。如果没有这一句,在登陆完成之后就会退出,而不是留在远程终端上。