python操作系统环境变量不在bash脚本中传递

2024-09-27 00:19:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本(使用伪终端)来传递一个名为“CDP”的环境变量:

def download(self, dPluzz, donnees=None):        # to call the bash script
    self.child_pid = self.v.fork_command(None, ['/bin/bash', 'dPluzz-cli', '-f', dest, '-u', adresse])   
    os.environ["CDP"] = "False"                  # set cancel as "False"
def cancel(self, dPluzz, donnees=None):
    if self.annul == 0:
      if self.time > 10 and self.percent != 100:
         os.environ["CDP"] = "True"
         print os.environ["CDP"]                 # returns True
         self.child_pid = str(self.child_pid)
         cmd = 'kill -TERM' + " " + self.child_pid
         subprocess.Popen(cmd, shell=True)
def __init__(self):                              #Pseudo-Terminal in GTK window     
      self.v = vte.Terminal()                    #(displayed in a notebook)
      self.v.connect ("child-exited", lambda term: self.verif(self, a))
      self.v.connect('contents-changed', self.term)
      self.v.set_size(70,20)
      self.v.set_encoding("UTF-8")  
      self.v.set_cursor_blinks(False) 
      self.v.show()
      self.page.add(self.v)

bash脚本是:

^{pr2}$

问题是,$CDP = False所以显示的消息不好。 原因是什么? 谢谢


Tags: self脚本bashnonefalsechildtrueos
1条回答
网友
1楼 · 发布于 2024-09-27 00:19:34

通过设置环境后

os.environ["CDP"] = "True"

只有通过os.system(), os.popen() or os.fork() and os.execv().调用bash脚本时,才能在bash中获得此值

所以如果你能补充

^{pr2}$

您应该能够正常使用bash脚本中的CDP值。在

请阅读^{}

我想是吧操作系统环境以及操作系统.putenv()关系密切。在

相关问题 更多 >

    热门问题