我们在Windows平台上使用cygwin进行一些维护工作。 我想要做的不仅是使用python启动cygwin,还是启动它并传递一个命令。
我想开始cygwin,举行会议,然后我传递一个命令,如果我需要,并获得控制台输出,那么如果我想,我通过第二个命令,并得到输出…
我想这样做是因为我们公司使用一堆命令与服务器进行通信,类似如下:步骤1:login步骤2:initInfo步骤3:getStatus = Port1
我不能传递一次命令,因为我需要根据前一个命令的输出来控制下一个应该传递哪个命令。
我可以使用下面的命令来启动mintty.exe并获取进程ID,如何将命令传递给此特定的mintty应用程序,并使用python获取输出,并且我需要多次与mintty进行通信,而无需启动每当我想要执行一个命令时,新的mintty。
p_mintty = subprocess.Popen(['c:/cygwin/bin/mintty.exe', '-'], shell = True, stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
您的任何build议热烈欢迎!
尝试这个:
program = subprocess.Popen(['c:/cygwin/bin/mintty.exe', '-'], stdin=subprocess.PIPE, stdout=subprocess.PIPE) program.stdin.write("command1") stdout1, stderr1 = program.communicate() program.stdin.write(change_something(stdout1)) stdout2, stderr2 = program.communicate() ..etc