一些背景
我需要模拟shell命令source
的行为,但在Python中。特别是寻找tcsh脚本,但如果它尽可能通用就更好了。
我已经看到了这个答案,它使shell运行env
来打印所有环境变量。
我的问题env
或printenv
只打印环境变量,不打印局部变量。然而,我想要获取的tcsh脚本使用像
set FOO=bar
那么在tcsh(和其他shell,只是为了完整性)中有一种方法可以打印所有的局部变量吗?
编辑:是的,我知道我必须运行TCSH作为它解析脚本的子进程,是的,python不能读取TCSH的内存,这就是为什么我想要一种方法来打印TCSH内的所有局部变量,以便python可以读取它们。
解决方案非常简单。就像可以用setenv
打印的环境一样,可以用set
打印局部变量。希望对大家有用!
为了记录,我解决了这个问题,多亏了@chepner的评论
不带参数的
set
命令可能是您想要的。
这是生成的python库,它完成了读取由脚本为大多数主要shell设置的本地和环境变量,并提供了一些定制以支持任何shell。