使用进程替换时,无法加载此类文件

时间:2019-07-09 18:37:50

标签: bash erb process-substitution

尝试使用erb来加载库并呈现配置:

erb -r .env.rb config.erb

我想有条件地更新.env.rb,所以我想可以使用sed并使用进程替换来实现这一点,例如:

erb -r <( sed "s/level: 'trace'/level: 'info'/" .env.rb ) config.erb

但是这样做可以给我:in 'require': cannot load such file -- /dev/fd/11 (LoadError)

我在做什么错?

1 个答案:

答案 0 :(得分:0)

我只能想象erb要么想要一个“可搜索的”文件(不需要用进程替代),要么它看着文件的扩展名,除非它起源于Windows,否则似乎不太可能。

以下(未经测试)可能会解决这两个问题,或者至少让您知道如何:

erb -r $( f=/tmp/$$.rb; sed 's/something/else/' .env.rb > $f; echo $f ) config.erb