这里的蟒蛇菜鸟,但试图学习
我正在尝试启动一个新的终端窗口,该窗口正在从 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 参数用引号括起来这一事实造成的。
提前感谢所有帮助
在咨询了一位朋友之后,我们能够找到一个有效的解决方案。
我们最终将使用 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
。