【发布时间】:2014-10-08 15:05:00
【问题描述】:
我正在尝试弄清楚如何在 Python 中使用控制台。假设,我有一个 Python2 脚本。这个脚本应该创建 3 个控制台(bash 或任何其他)并为它们提供不同的命令。
例子:
- 1 号控制台将负责远程登录
- 用于 ping 的控制台 #2
- 3 号控制台将负责新的 ssh 访问
到目前为止我发现的是 subprocess 模块。
我可以用这个
import subprocess
term1 = subprocess.Popen(['open', '-a', 'Terminal'])
但我仍然找不到如何向 term1
发送命令谢谢。
【问题讨论】:
-
@SylvainLeroux Python2。谢谢
-
如果我理解得很好,这里的关键问题是你想与运行在终端inside的程序进行通信。不是终端本身。
-
@SylvainLeroux 没有。我的问题是我需要与每个终端本身进行通信并读取所有终端的输出。
-
显然,我不太清楚你的问题。在我看来,terminal(又名 console)只不过是显示窗口并将 I/O 从/到 PTY 路由到某个主机程序的 GUI 程序而已.该主机程序是真正“有用的东西”:它可能是一个 shell(bash、ssh)、一个
ping命令或任何其他“控制台模式”程序(即:从 stdin 读取,写入stdout)。所以我不太清楚你想说什么 “我需要与每个终端本身进行通信” -
@SylvainLeroux 在我的特殊情况下,我必须有 3 个控制台。并运行 3 个不同的命令。每个控制台的每个命令。我的问题是在使用“tcprelay --portoffset 10000 873 23”命令运行第一个控制台后,我也无法运行第二个和第三个控制台。我的脚本在不打开新的控制台会话的情况下运行第一个命令本身。这就是为什么我需要为 3 个命令设置 3 个控制台会话
标签: python bash python-2.7 terminal subprocess