与此问题相关:nix-shell: how to specify a custom environment variable?
有了这个推导:
stdenv.mkDerivation rec {
FOO = "bar";
}
FOO
将在 nix shell 中作为环境变量可用,但是否可以从 env 文件加载环境变量?
最佳答案
您可以使用 nix-shell
的 shellHook
通过 sourcing 从文件加载环境变量它们作为 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
如果你的 shell 也不是一个包。
关于尼克斯壳 : how to load environment variables from env file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61600333/