gpt4 book ai didi

python - Python 中有没有一种方法可以检查 os.environ 的条目是变量还是 shell 函数?

转载 作者:太空狗 更新时间:2023-10-29 21:29:13 26 4
gpt4 key购买 nike

借助Python中的os模块,我们可以轻松地通过字典os.environ访问环境变量。但是,我发现 os.environ 不仅包含变量,还包含全局定义的 shell 函数(例如来自 module 软件包)。

是否有可能从 Python 中找出 os.environ 中的给定条目是否实际上是一个函数而不是一个变量?请注意,首选与 shell 无关的解决方案,但我也可以接受特定于 Bash 的解决方案。

最佳答案

此功能是特定于 bash 的,因此对导出的 shell 函数的测试需要执行 Bash 执行的操作。实验与source code显示 Bash 在启动时通过其值中存在 () { 前缀将环境变量识别为 shell 函数——如果前缀缺失,甚至略有改变,该变量将被视为普通数据变量。

因此,等效的 Python 检查如下所示:

def is_env_shell_func(name):
return os.environ[name].startswith('() {')

关于python - Python 中有没有一种方法可以检查 os.environ 的条目是变量还是 shell 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20259568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com