在zsh中如何列出所有环境变量?


26

我想在zsh中获取给定时间的所有环境变量(shell变量?导出变量?)及其值的列表。
正确的方法是什么?

Answers:


35

听起来像你想要的env


太尴尬了!谢谢。但是现在我们已经准备就绪,如果没有人要问,我怎么能找到这个呢?
阿里

3
@Ali好吧,env不特定于zsh,它是一个独立程序。话虽如此,Google上“列出环境变量”的第一结果说是要使用env,所以我想这是一种方法;-)
克里斯·

1
我的意思是如果我没有互联网连接!我知道几天后如果没有Internet连接就会死掉,但是那几天我该如何在文档/人中查找……?
阿里

2
您可以做类似的事情apropos environment
glenn jackman 2012年

1
@Ali,如果您想在没有帮助的情况下找到它,我将开始使用man zsh或谷歌搜索“ zsh打印变量”或类似内容。
亚历克斯(Alex)

21

export打印出环境变量及其值的列表。值用引号引起来,其输出export适合于读回到外壳中。变量按字母顺序打印。

如果还需要shell变量,请使用set。如果你想与类型的注释(shell变量exportedinteger等),使用typeset

您也可以在其他外壳上使用exportset,但是大多数不引用输出,因此它不可解析。typeset在ksh和bash上可用(行为不同)。

如果需要环境变量,则还有一个env命令,该命令将打印未排序,未引用的内容

如果只需要名称,请访问parameters关联数组。键是参数名称,值是类型。


2
echo $ZSH_VERSION返回5.0.5,但是我env | grep ZSH_VERSION看不到任何匹配项。是ZSH_VERSION不是环境变量?我想念什么?
2014年

3
@Josh这是一个shell变量,不会导出到环境中。
吉尔(Gilles)“所以,别再邪恶了”

@Gilles我们还将如何列出所有这些?
丹尼尔·奎

@DanielQue我的答案的第二段
吉尔(Gilles)“所以,别再邪恶了”

@Gilles这很奇怪,ZSH_HIGHLIGHT_STYLES当我使用set或任何其他命令时,不会显示局部变量。
丹尼尔·奎
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.