首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何读取文件并将替换应用于其内容?

如何读取文件并将替换应用于其内容?
EN

Stack Overflow用户
提问于 2021-06-13 23:36:49
回答 1查看 1.2K关注 0票数 1

我有一个长字符串,我想提取到一个单独的文件。

代码语言:javascript
运行
复制
prepare = lib.hm.dag.entryAfter ["writeBoundary"] '' very long script with ${...} '';

我可以用builtins.readFile来阅读它,但它并不能取代${...}的零位持有者。

如何从文件中读取字符串并解析其中的nix变量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-14 07:33:03

您可以使用substitute系列bash函数(参见Nixpkgs手册),也可以使用substituteAll Nix函数,该函数生成执行替换的派生。

代码语言:javascript
运行
复制
substituteAll { src = ./sample.sh; inherit bash; hi = hello; }

sample.sh

代码语言:javascript
运行
复制
#!@bash@/bin/bash
@hi@

结果:

代码语言:javascript
运行
复制
$ nix repl <nixpkgs>

nix-repl> substituteAll { src = ./sample.sh; inherit bash; hi = hello; }
«derivation /nix/store/7klv763a0ipgvwf3j84aazkzx2d5rljz-sample.sh.drv»

nix-repl> :b substituteAll { src = ./sample.sh; inherit bash; hi = hello; }

this derivation produced the following outputs:
  out -> /nix/store/v03hpzw9ykrbyqpmalnijnyibq3waqhw-sample.sh

nix-repl> 

/nix/store/v03hpzw9ykrbyqpmalnijnyibq3waqhw-sample.sh

代码语言:javascript
运行
复制
#!/nix/store/a4yw1svqqk4d8lhwinn9xp847zz9gfma-bash-4.4-p23/bin/bash
/nix/store/jmmw0d3nmklwafcwylvrjb9v69wrbcxf-hello-2.10
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67963396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档