打印shell中的所有局部变量

cmssoen2  于 2023-05-07  发布在  Shell
关注(0)|答案(2)|浏览(234)

部分上下文

我需要在Python中模拟shell命令source的行为。特别是源tcsh脚本,但它会很好,因为它是尽可能通用。
我见过this answer,它使shell运行env来打印所有环境变量。

问题

envprintenv只打印环境变量,不打印局部变量。但是,我希望源代码的tcsh脚本使用如下命令

set FOO=bar

那么在tcsh(和其他shell,只是为了完整起见)中有没有一种方法可以打印所有的局部变量呢?
编辑:是的,我知道我必须将TCSH作为子进程运行才能解析脚本,是的,python无法读取TCSH的内存,这就是为什么我想要一种方法来打印TCSH中的所有局部变量,以便Python可以读取它们。

fquxozlt

fquxozlt1#

解决办法很简单。就像可以用setenv打印的环境一样,你可以用set打印局部变量。希望有用!

6tqwzwtp

6tqwzwtp2#

为了记录在案,我解决了这个问题前一段时间感谢@chepner的评论
不带参数的set命令可能就是您想要的。
下面是生成的python库,它可以阅读大多数主要shell的脚本设置的本地和环境变量,并提供一些定制以支持任何shell。

相关问题