【发布时间】:2013-03-07 16:20:55
【问题描述】:
将 shell 脚本转换为 python 并尝试找到执行以下操作的最佳方法。我需要它,因为它包含我需要阅读的环境变量。
if [ -e "/etc/rc.platform" ];
then
. "/etc/rc.platform"
fi
我已经转换了 'if' 但不确定如何处理 . "/etc/rc.platform" 作为源是一个 shell 命令。到目前为止,我有以下内容
if os.path.isfile("/etc/rc.platform"):
print "exists" <just to verify the if if working>
<what goes here to replace "source /etc/rc.platform"?>
我查看了 subprocess 和 execfile 没有成功。
python 脚本需要访问 rc.platform 设置的环境变量
【问题讨论】:
-
您必须解析
/etc/rc.platform,提取环境变量名称和值,并相应地更新os.environ。 -
@crazyeewulf - 这不仅仅是关于环境变量,还可能有脚本可以导出的 bash 函数。你打算如何从 python 脚本中使用它们,除非你以某种方式尝试为所有被调用的脚本重用相同的 shell。
-
我建议也将
/etc/rc.platform移植到Python,因为.与import非常相似。 -
如果你想用python重写脚本,那么你很可能想用python重写/etc/rc.platform。如果只是进行变量赋值,则可以将其设为配置文件。在一般情况下,您尝试做的事情很困难。
-
@Tuxdude 对于一般情况,您是正确的。但是 OP 在问题中提到“我需要这个,因为它包含我需要读取的环境变量”。所以我预计 OP 可能不关心此文件中的环境变量以外的任何内容。