【问题标题】:How can I bypass a command to terminal inside another terminal via python?如何通过python绕过命令到另一个终端内的终端?
【发布时间】:2018-05-18 04:52:06
【问题描述】:

在python中,我们可以使用子进程调用任何进程。

我有一种情况,我必须使用交互式终端,我需要使用 python 代码输出一些命令。

如何使用 subprocess 模块打开交互式终端,我可以进一步绕过一些命令并让它们进一步解析它们?

我可以将 subprocess 模块用于 2 个不同的命令,其中第二个依赖于第一个的输出,例如

ps -aux | grep python

第一个 ps -aux 可以传递给 1 个子进程 obj,该 obj 将用作另一个子进程命令的 stdin,其中将处理 grep python....

【问题讨论】:

    标签: python linux bash subprocess


    【解决方案1】:

    你的问题不是很清楚,所以我会回答我理解的部分

    如何使用 subprocess 模块打开交互式终端,我可以进一步绕过一些命令并让它们进一步解析它们?

    我有一台 ubuntu 机器,这是我调用单独的终端并将命令传递给它们的方式

            from subprocess import Popen,PIPE
            command='who'
            command ='"'+command+' '+';read -n1" '
             #subitem = Popen(['gnome-terminal','--disable-factory','-x','bash','-c',command],stdin =PIPE)
              subitem = Popen(['gnome-terminal','--disable-factory','-x','bash'],stdin =PIPE)
            subitem.communicate(input='your command')
    

    您可以根据您的要求使用 stdin,stdout,communicate 方法进一步玩这个

    【讨论】:

    • 交互式终端不允许像您那样通过参数将命令传递给终端。我只能在进入终端后输入命令。它实际上是一种命令行实用程序/客户端...
    • 嗨 pankaj,subitem.communicate(input='your command') 不接受这种方式.... :| :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-23
    • 2012-05-09
    • 2018-01-11
    • 1970-01-01
    相关资源
    最近更新 更多