Bash
有沒有設置目錄/項目本地環境變數的好方法?
我一直在從事幾個項目,它們需要不同的環境變數(例如,
PATH
對於不同版本的clang
執行檔,PYTHONPATH
對於幾個外部模組)。每當我在一個項目上工作時,我都必須自己修改這些環境變數(例如,更改.zshrc
/.bashrc
和source
它);我有時會忘記並犯錯誤。有沒有一種方法/項目可以幫助自動執行此操作,類似於virtualenv在 Python 中所做的那樣?
有成熟的工具旨在為特定目錄設置環境變數。
與為此設計的其他工具相比,
direnv
是其中最好的。主要好處之一是當您退出該目錄時,它支持unload環境變數。
direnv
是shell的環境切換器。它知道如何掛鉤到 bash、zsh、tcsh、fish shell 和 elvish 以根據目前目錄載入或解除安裝環境變數。這允許特定於項目的環境變數,而不會弄亂~/.profile
文件。
direnv
其他類似工具之間的區別:
direnv
用 Go 編寫,與用 Python 編寫的對應物相比更快direnv
支持從特定目錄退出時解除安裝環境變數direnv
覆蓋許多貝殼類似項目
- 環境模組- 最古老的(以一種好的方式)環境載入系統之一
- autoenv - 輕量級;不支持解除安裝;用 Python 寫的慢
- zsh-autoenv - autoenv 和smartcd的功能豐富的組合:進入/離開事件,嵌套,儲存(僅限 Zsh)。
- ~~ asdf ~~,asdf 是一個外掛管理器,用於切換同一個執行檔的不同版本。根本不是環境切換器。