如何在expect脚本中运行shell命令并检查某些特定的字符串?
#!/usr/bin/expect
set timeout 20
send "ps -aef | grep P1"
expect "string"
Blah
Blah
exit;
我尝试使用spawn
,exec
和system
命令代替send
,但它总是超时或以某种错误结束。
答案 0 :(得分:2)
模式是你spawn
程序,expect
它产生一些输出,send
输入一些,(根据需要重复最后两个),close; wait
完成。如果程序没有产生预期的输出,你将等到它结束或你超时。
幸运的是,您可以一次等待多件事:
spawn ps -aef
expect {
"P1" { ... got it ... }
eof { ... not got it ... }
timeout { ... ps hung? ... }
}
close
wait