如何在Bash和Fish启动时加载.env文件中的环境变量?
让.env变量在bash和fish中全局可用的方法
1. 统一的.env文件
你的.env文件示例如下(可按需修改):
VAR1=xxx VAR2=yyy # sample C include dir use case INCLUDE_DIR=/etc/include/xxx
2. 配置bash自动加载.env
编辑bash的启动配置文件(Linux常用~/.bashrc,macOS可使用~/.bash_profile),添加以下代码:
# 自动加载.env环境变量 if [ -f ~/.env ]; then export $(grep -v '^#' ~/.env | xargs) fi
执行source ~/.bashrc(或对应配置文件)让修改立即生效。
3. 配置fish自动加载.env
编辑fish的启动配置文件~/.config/fish/config.fish,添加以下代码:
# 自动加载.env环境变量 if test -f ~/.env set -x (grep -v '^#' ~/.env | sed 's/=.*//') (grep -v '^#' ~/.env | sed 's/.*=//') end
执行source ~/.config/fish/config.fish或重启fish shell让修改生效。
注意事项
- 如果.env文件不在用户根目录(
~)下,需将代码中的~/.env替换为实际文件路径 - 若变量值包含空格,需在.env中用引号包裹(如
VAR="hello world"),同时调整bash加载脚本为:
fish加载脚本无需额外调整,引号会被自动识别。export $(grep -v '^#' ~/.env | xargs -d '\n')
内容的提问来源于stack exchange,提问作者HumpbackWhale194
相关产品推荐
相关产品推荐

