nix - nix-shell:如何从 env 文件加载环境变量?
问题描述
与此问题相关:nix-shell:如何指定自定义环境变量?
有了这个推导:
stdenv.mkDerivation rec {
FOO = "bar";
}
FOO
将在 nix shell 中作为环境变量提供,但是否可以从 env 文件加载环境变量?
解决方案
您可以使用nix-shell
'sshellHook
从文件中加载环境变量,方法是将它们作为 shell 代码采购。例如:
stdenv.mkDerivation {
name = "my-shell";
shellHook = ''
# Mark variables which are modified or created for export.
set -a
source env.sh
# or to make it relative to the directory of this shell.nix file
# source ${toString ./env.sh}
set +a
'';
}
如果您的外壳也不是一个包,您可以切换stdenv.mkDerivation
到。mkShell
推荐阅读
- docker - 使用默认管道在 gitlab.com 中构建失败
- javascript - Express 错误地呈现 HTML
- python - 如何制作类型检查器将识别为str的自定义注释?
- laravel - 如何优化 Laravel 的查询
- ios - AWSCognito Auth `getSession` 不会在 Swift 中触发回调
- javascript - 如何使用Javascript中的输入修复'无法读取null的属性'值''
- python - 为什么这个 Python 代码在存储缓存索引的总和时会显示 TypeError?
- php - 如何否定 php if 或语句
- tableau-api - 如何在 Tableau 中执行“类似 RankIF”的场景
- react-admin - 如何有条件地更改数据网格行背景颜色?