从Expect执行Python脚本

时间:2015-06-03 10:46:42

标签: python expect

我正在使用Expect进行自动化,我想从中执行Python脚本。但它没有用......这是我到目前为止所尝试的:

#!/usr/bin/expect
spawn  "./os_fun"

#!/usr/bin/expect
spawn  "./os_fun.py"

#!/usr/bin/expect
spawn  python "./os_fun(.py)"

“os_fun.py”包含简单代码:

#!/bin/usr/python
import os
print os.getcwd()

我还想提一下,我必须使用Expect而不是Bash,因为我需要做自动化部分,而且我不应该使用Pexpect。

1 个答案:

答案 0 :(得分:3)

说到Expect,你总是需要一些东西,以便Expect等待它。否则,它将继续这样做。简单地产生一个处理是没有意义的,因为Expect不等待查看它,这反过来又使用户也不会看到输出。

在您的情况下,您只需运行代码并查看输出,直到程序完成。我希望我的理解是正确的。

!/usr/bin/expect
spawn python os_fun.py
expect eof; # will wait till 'eof' seen

这里,expect命令将等待它看到正在运行的程序关闭。 默认超时为10秒,可以更改为

set timeout 60; # Timeout value as 1 min