我试图与多个shell程序进行交互,其中一个用python写在perl中,另一个用ruby编写。
认为终端他们作为命令运行简单
$python demo.py
Option1
Option2
Option3
Option4
app1>1
#Menu 1 options
Option1 from menu 1
Option2 from menu 1
Option3 from menu 1
Option4 from menu 1
app1>2
#Option 2 from menu1 options
Option2.1 from menu 1
Option2.2 from menu 1
Option2.3 from menu 1
Option2.4 from menu 1
app1>2
所有3个应用程序运行几乎相同,但我尝试使用php shell_exec命令,python OS模块,没有人能够与子菜单和程序的工作流程进行交互......
我能跑:
import os
list = os.popen('pwd').read()
print list
或
<?php shell_exec(´ls -las´)?>
是否有人在没有GUI界面的情况下将Shell程序迁移到gui Web界面? (我正在考虑制作一个与这个程序交互的包装器)
答案 0 :(得分:0)
您需要使用子流程模块来创建子流程,然后使用 interact 方法或.stdin和.stdout属性(它们是类似文件的对象。)
你必须在subprocess.Popen调用中传递stdin = subprocess.PIPE和stdout = subprocess.PIPE,否则你将无法进行交互。
如果要将其绑定到Web应用程序或其他内容,则还必须让它在“后台”运行,以便用户可以在多个HTTP请求期间与程序进行交互。