期望脚本运行shell命令

时间:2015-08-05 13:03:08

标签: linux tcl expect

如何在expect脚本中运行shell命令并检查某些特定的字符串?

#!/usr/bin/expect

set timeout 20

send "ps -aef | grep P1"

expect "string"

Blah 
Blah

exit;

我尝试使用spawnexecsystem命令代替send,但它总是超时或以某种错误结束。

1 个答案:

答案 0 :(得分:2)

模式是你spawn程序,expect它产生一些输出,send输入一些,(根据需要重复最后两个),close; wait完成。如果程序没有产生预期的输出,你将等到它结束或你超时。

幸运的是,您可以一次等待多件事:

spawn ps -aef
expect {
    "P1" { ... got it ... }
    eof { ... not got it ... }
    timeout { ... ps hung? ... }
}
close
wait