从 Expect 执行 Python 脚本

Execute a Python script from 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。

到了Expect,总要有所期待,才会让Expect守候。否则,它将照此进行。简单地产生一个处理是没有意义的,因为 Expect 不要等着看它,这反过来又使用户也看不到输出。

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

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

此处,expect 命令将等待直到它看到 运行ning 程序关闭。 默认超时为 10 秒,可以更改为

set timeout 60; # Timeout value as 1 min