【发布时间】:2015-10-04 13:28:53
【问题描述】:
我有一个文本文件,其中包含属于可以在bash 脚本中调用的一组命令的所有路径,它被称为progs.ini。
通常当我想在我的 bash 脚本中调用这个配置文件时,我会使用这个命令
. progs.ini
progs.ini 包含如下内容:
BIN=/bin/linux_64/
P_ANALYSE=${BIN}/analyse
NPARA=1
现在我想在 python 中使用我的部分代码,我尝试使用以下命令:
import subprocess as S
import os
CMD='. progs.ini'
S.call([CMD],shell=True)
它不返回任何错误消息但它无法识别progs.ini中定义的变量
>>os.system('echo ${BIN}')
0
这不是设置一些类似于this problem 的环境变量。我想使用配置文件设置一些变量。
【问题讨论】:
-
subprocess和os.system运行的 shell 进程是不相关的。它们不共享任何状态。 -
@EtanReisner 那么与这个问题有什么关系呢?
-
没有。我的意思是它们彼此无关。您实际上只是运行
bash -c '. progs.ini'; bash -c 'echo $BIN'并想知道为什么该变量不起作用。这两个命令不共享任何状态。它们不共享变量等。它们是完全不同的过程。 -
@EtanReisner 有什么方法可以在我的 python 脚本中设置这些变量,而无需重新编写它们?
标签: python bash operating-system subprocess