Python - 我如何将长命令添加到子进程,当我在一行中应用时,整个命令不起作用

标签 python linux shell subprocess

我如何将这个完整的 export DISPLAY=:0.0 && python/home/src/upload.py %s %s & 命令添加到子进程?

# valid command
u ="""export DISPLAY=:0.0 && python /home/src/upload.py %s %s &""" % (s[1], s[2])
d ="""export DISPLAY=:0.0 && python /home/src/download.py %s %s &""" % (s[1], s[2])

# seems to work like this but need to add the u and d on this
subprocess.Popen(["python","/home/src/upload.py"], stdout=subprocess.PIPE)
subprocess.Popen(["python","/home/src/download.py"], stdout=subprocess.PIPE)

最佳答案

您可以将DISPLAY 变量添加到环境变量中;参数是参数列表的外部元素:

import os

env = os.environ.copy()
env['DISPLAY'] = ':0.0'

p1 = subprocess.Popen(["python","/home/src/upload.py"] + s[1:3], 
                      env=env, stdout=subprocess.PIPE)
p2 = subprocess.Popen(["python","/home/src/download.py"] + s[1:3], 
                      env=env, stdout=subprocess.PIPE)

关于Python - 我如何将长命令添加到子进程,当我在一行中应用时,整个命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19038124/

相关文章:

linux - 生成包含 linux 目录中所有文件列表的文件

Python - 类可调用是什么意思?

python - Beautifulsoup 使用 `find_all` 按文本查找元素,无论其中是否有元素

python - 全局静默整个模块的标准输出

regex - Linux中的SED命令用脚本编辑文件

c - linux C 服务器 - 识别/命名客户端

linux - 配置驱动、基于文本的 Linux 配置向导

python - 困惑的记录 - 字段内容内的分隔符

c - 不知道文件名的测试人员

shell - 如果找到内容,如何在grep之后生成文件?