2012-08-27 27 views
0

我正在Windows下运行一些python脚本的shell测试脚本。 shell脚本正在测试各种模块的功能。使用Python的bash脚本进行通信

我面临的问题是某些脚本可能会挂起。为此,我为每个脚本添加了一个超时值。这个超时有一个默认值。但是这个超时值可以通过bash脚本来改变 - 从bash函数(SetMaxTime) - 我可以修改SetMaxTime。

当使用默认值时,我在python中等待那段时间,如果bash脚本没有完成,我会认为由于超时而失败。

问题是当超时的默认值从bash更改时。有没有办法与python的bash脚本(使用mingw运行)进行通信?

注:脚本在Windows下运行。

+2

您的问题太泛泛,无法回答。向我们展示您的代码,解释您认为可能有问题的地方,然后我们会回复并解决问题。 – ghoti

+0

我已经给出了一个通用的答案。 –

回答

1

当然你可以在它们之间进行通信,只需从一个文件或一对文件(一个用于写入Python,bash脚本读取,另一个用于反之亦然)读取/写入文件。

+0

我认为有更好的方法来做到这一点。但由于这不是时间关键任务,我可以使用文件。 – INS

+0

我同意,这是一个可怕的方式来做到这一点,但作为一个快速和肮脏的解决方案,它将工作。 –

1

设置超时值时,脚本会在stdout上输出信息。例如。当超时发生变化时,脚本可以输出:

TIMEOUT_SECONDS=2 

在调用脚本,寻找这个标志在被调用的脚本的输出,并相应调整测试超时Python代码。

对于这一点,你可能会想使用的subprocess.Popen方法,指定为标准输出的PIPE选项调用脚本。在测试运行时,您需要阅读子进程stdout属性,查找脚本的TIMEOUT_SECONDS=xxx输出并调整超时时间。

相关问题