如何将输入重定向到Ruby命令行作为参数

时间:2015-07-16 04:44:59

标签: ruby command-line cmd

我想使用重定向从命令行填充Ruby脚本的ARGV:

ruby myscript.rb < my_cmdline_args.txt

这似乎不起作用。我的脚本抱怨ARGV是空的。

3 个答案:

答案 0 :(得分:1)

在您的脚本上,您可以使用ARGF从linux管道读取,例如:

#!/usr/bin/env ruby
puts ARGF.read

尝试发送文件或一些输入,它应该可以工作,你可以

ruby myscript.rb < my_cmdline_args.txt

它将回显内容或

cat my_cmdline_args.txt | ruby myscript.rb

它将以相同的方式读取内容

答案 1 :(得分:1)

您可以使用xargs

执行此操作
cat my_cmdline_args.txt | xargs ruby myscript.rb

更多信息:http://unixhelp.ed.ac.uk/CGI/man-cgi?xargs

答案 2 :(得分:0)

目前还不清楚你在寻找什么,因为你们都在谈论使用文件的内容作为参数,以及重定向,即使用文件的内容作为输入。

但是,我确实认为这样的事情是你想要的:

FOR /F %i IN (my_cmdline_args.txt) DO ruby myscript.rb %i