Nix可以用于简单的shell脚本吗?[关闭]

ljsrvy3e  于 2023-02-13  发布在  Shell
关注(0)|答案(1)|浏览(224)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

十小时前关门了。
这篇文章是编辑和提交审查1小时前。
Improve this question
我对 * Nix * 很感兴趣,因为它是功能性的,而且文件路径是一流的数据类型。

  • Nix * 是否可以独立用于简单的shell脚本,特别是用于调用典型的命令行实用程序(如编译器)和复制/移动文件?

我不打算在生产环境中使用它。只供个人使用。

guz6ccqo

guz6ccqo1#

Nix是否适合简单的shell脚本,比如调用典型的命令行工具和复制/移动文件?
它并不是一种通用语言,即使是用Nix编写脚本,你也会使用像bash这样的常规脚本语言,Nix主要集中在与nix商店的交互上。
Nix总是在一个独立的沙箱环境中执行,类似于Docker构建环境。因此,它不会访问你常用的文件系统。这就是Nix的全部意义。
但是我认为这是一个实现细节,从技术上讲,我不认为有任何东西限制Nix在你的本地环境中运行。这需要开发,这不是一个小工作。
然而,你可能仍然会发现nix对于编写shell脚本很有用,你可以编写一个nix表达式来构建一个nix包。
例如(只是粗略地,还没有检查):

example = (import (builtins.fetchGit {
  url = "ssh://root@example.co.uk:/root/gitrepo/example";
  rev = "abcxyz"
}) {});

pkgs.writeScript "example.sh"
        ''
            #!${pkgs.stdenv.shell}
            set -e

            echo "hi"
            cat ${example}/docs/example

相关问题