为ruby中的system()调用设置输入

dsl*_*slh 4 ruby system

我正在尝试使用net/sftp下载文件,并将其内容作为命令行应用程序的stdin传递.我可以通过首先将文件写入磁盘来实现,但我宁愿避免这一步.

有没有办法控制system()在ruby中调用的程序的输入?

mu *_*ort 10

完全不要使用system这种东西,system最好是运行一个你不需要与之交谈的外部命令.

使用Open3.open3Open3.open2打开一些管道到外部进程然后写入stdin管道就像写入任何其他IO通道; 如果有任何输出要处理,那么你可以直接从stdout管道读取它,就像从任何其他输入IO通道读取一样.