File.read(" | echo mystring")如何工作?

时间:2016-12-16 15:01:30

标签: ruby

我在一些正在处理的代码中找到了这个。它旨在解决从磁盘读取密钥文件的要求。在生产中,密钥文件的内容位于环境变量中。

旧代码:

key = File.read('path/to/key.pem')

新代码:

key = File.read('| echo $KEY_VARIABLE')

这是如何运作的?

1 个答案:

答案 0 :(得分:9)

来自IO docs

  

以“|”开头的字符串表示子进程。 “|”后面的字符串的其余部分被调用为具有连接到它的适当输入/输出通道的进程。

"频道连接" bit表示进程的输出将成为read的输入。因此,在此示例中,可以读取环境变量的echo的结果。