【问题标题】:Starting a netcat listener in new terminal window from python script从 python 脚本在新的终端窗口中启动一个 netcat 监听器
【发布时间】:2018-12-12 22:31:03
【问题描述】:

这里是python的总菜鸟,但正在努力学习

我正在尝试启动一个新的终端窗口,该窗口正在通过 python 脚本在端口 7777 上运行 netcat 侦听器。

我试过了……

import os

netcat = '--command \"nc -nvlp 7777\"'
print ("Starting listener on port 7777")
from subprocess import call
call(['xfce4-terminal', netcat])

from subprocess import call
call(['xfce4-terminal', '--command', '"nc -nvlp 7777"')]

但没有骰子。第二个示例将实际启动终端并查找命令,但不执行 netcat “参数”。

这似乎是因为使用 --command 需要我的 netcat 参数用引号引起来。

提前感谢所有帮助

【问题讨论】:

    标签: python terminal command


    【解决方案1】:

    在咨询了朋友之后,我们找到了可行的解决方案。

    我们最终将使用 netcat 调用终端的整个命令放入一个变量中,然后将该变量传递给 call(),就像这样......

    import os
    
    netcat = 'xfce-terminal --command "nc -nvlp 7777"'
    print ("Starting listener on port 7777")
    from subprocess import call
    call(netcat,shell=True)
    

    您会注意到,我们还必须使用 shell=True,即使有针对它的警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 2016-09-30
      • 2017-02-11
      • 2015-08-15
      • 2012-03-30
      • 2017-01-17
      • 1970-01-01
      相关资源
      最近更新 更多