部分上下文
我需要在Python中模拟shell命令source
的行为。特别是源tcsh脚本,但它会很好,因为它是尽可能通用。
我见过this answer,它使shell运行env
来打印所有环境变量。
问题
env
或printenv
只打印环境变量,不打印局部变量。但是,我希望源代码的tcsh脚本使用如下命令
set FOO=bar
那么在tcsh(和其他shell,只是为了完整起见)中有没有一种方法可以打印所有的局部变量呢?
编辑:是的,我知道我必须将TCSH作为子进程运行才能解析脚本,是的,python无法读取TCSH的内存,这就是为什么我想要一种方法来打印TCSH中的所有局部变量,以便Python可以读取它们。
2条答案
按热度按时间fquxozlt1#
解决办法很简单。就像可以用
setenv
打印的环境一样,你可以用set
打印局部变量。希望有用!6tqwzwtp2#
为了记录在案,我解决了这个问题前一段时间感谢@chepner的评论
不带参数的
set
命令可能就是您想要的。下面是生成的python库,它可以阅读大多数主要shell的脚本设置的本地和环境变量,并提供一些定制以支持任何shell。