【发布时间】:2013-12-14 02:30:05
【问题描述】:
使用 Python 中的 os 模块,我们可以通过字典 os.environ 轻松访问环境变量。但是,我发现os.environ 不仅包含变量,还包含全局定义的 shell 函数(例如来自 module 软件包)。
是否有可能从 Python 中找出os.environ 中的给定条目是否实际上是一个函数而不是一个变量?请注意,首选与外壳无关的解决方案,但我也可以选择特定于 Bash 的解决方案。
【问题讨论】:
-
是python函数,还是bash shell函数?
-
您可以检查 Python 变量以查看它是否可以按照此处所述进行调用:stackoverflow.com/questions/624926/… 但我对您将 shell 函数添加到
os.environ的操作很感兴趣。这对我来说似乎很奇怪。 -
如下所示,如果您使用
export -f fn或declare -fx fn导出shell 函数,那么函数fn将在os.environ中结束。 -
@VooDooNOFX:我试图找出一个 bash shell 函数。
-
@Thrustmaster:
export tt='() aw, dayum!; echo $tt给我留下了() aw, dayum!,所以在这种情况下我们会得到一个误报。由于这是一个将部署在非常异构的系统上的脚本,我不能指望没有任何可变内容以()开头。
标签: python bash shell environment-variables