Mic*_*per 7 python bash shell environment-variables
使用osPython中的模块,我们可以通过dict轻松访问环境变量os.environ.但是,我发现os.environ它不仅包含变量,还包含全局定义的shell函数(例如,来自module软件包).
是否有可能从Python中找出os.environ实际中给定条目是否是函数而不是变量?请注意,首选的是shell无关的解决方案,但我也可以选择Bash特定的解决方案.
此功能是特定于bash的,因此对导出的shell函数的测试需要执行Bash所做的操作.实验和源代码显示Bash在启动时通过() {其值中的前缀识别环境变量作为shell函数- 如果前缀丢失,或者甚至稍微改变,则将变量视为普通数据变量.
因此,等效的Python检查将如下所示:
def is_env_shell_func(name):
return os.environ[name].startswith('() {')
Run Code Online (Sandbox Code Playgroud)