我需要传递一个文本文件作为参数,而不是在代码中打开它。文本文件的内容应打印在控制台上。我已经完成了以下代码:
File.open("test_list.txt").each do |line|
puts line
end
Run Code Online (Sandbox Code Playgroud)
请指教。
在 shell 上,调用ruby脚本,后跟文件名.txt,如下所示:
ruby foo.rb test_list.txt
Run Code Online (Sandbox Code Playgroud)
该变量ARGV将包含对调用解释器时传递的所有参数的引用ruby。特别是ARGV[0] = "test_list.txt",因此您可以使用它而不是硬编码文件名:
File.open(ARGV[0]).each do |line|
puts line
end
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您想将文件的内容传递给您的程序,您可以使用:
cat test_list.txt | ruby foo.rb
并在程序中:
STDIN.each_line do |line|
puts line
end
Run Code Online (Sandbox Code Playgroud)