【问题标题】:Nix shell #! to refer to to shell.nix in a parent directory尼克斯壳#!引用父目录中的 shell.nix
【发布时间】:2022-01-10 15:32:18
【问题描述】:

我最近几乎所有的脚本都是从

开始的
#!/usr/bin/env nix-shell
#! nix-shell -i bash
set -e

但这要求default.nix/shell.nix 与脚本位于同一目录中,但并非总是如此。有没有办法告诉nix-shell 查看*.nix 文件的所有父目录?

【问题讨论】:

  • -u-o pipefail 也是很好的默认值。我使用set -euo pipefail

标签: nix shebang nix-shell


【解决方案1】:

#! nix-shell 后面的项基本上都是常规的nix-shell 参数,所以你可以像这样添加文件名。

#!/usr/bin/env nix-shell
#! nix-shell -i bash ../shell.nix
set -e

路径解析是相对于脚本文件发生的。 当您使用目录路径时,它将在目录中查找default.nix,而不是shell.nix

【讨论】: