Hon*_*hen 13 shell bash zsh environment-variables
我一直在做几个项目,它们需要不同的环境变量(例如,PATH
对于不同版本的clang
可执行文件,PYTHONPATH
对于几个外部模块)。每当我在一个项目上工作时,我必须自己修改这些环境变量(例如,更改.zshrc
/.bashrc
和source
它);我有时会忘记并犯错。
是否有一种方法/项目可以帮助自动执行此操作,类似于virtualenv在 Python 中所做的工作?
Sim*_*mba 10
有一些成熟的工具可以为特定目录设置环境变量。
与其他为此设计的工具相比,direnv
是其中最好的。主要好处之一是它支持在您退出该目录时卸载环境变量。
direnv
是 shell 的环境切换器。它知道如何钩入 bash、zsh、tcsh、fish shell 和 elvish 以根据当前目录加载或卸载环境变量。这允许特定于项目的环境变量而不会弄乱~/.profile
文件。
是什么让direnv
其他类似的工具之间的不同:
direnv
用 Go 编写,与用 Python 编写的对应物相比更快direnv
从特定目录退出时支持卸载环境变量direnv
覆盖许多壳类似项目