我做了一个程序,将请求发送到URL并将其保存在文件中。该计划就是这样,并且运作良好:
require 'open-uri'
n = gets.to_i
out = gets.chomp
output = File.open( out, "w" )
for i in 1..n
response = open('http://slowapi.com/delay/10').read
output << (response +"\n")
puts response
end
output.close
我想修改它,以便我可以从命令行执行它。我必须这样运行:
fle --test abc -n 300 -f output
我该怎么办?
答案 0 :(得分:1)
这样的事情可以解决问题:
app.php
答案 1 :(得分:1)
这是编写代码的更惯用的方法:
require 'open-uri'
n = gets.to_i
out = gets.chomp
File.open(out, 'w') do |fo|
n.times do
response = open('http://slowapi.com/delay/10').read
fo.puts response
puts response
end
end
这将File.open
与块一起使用,这允许Ruby在块退出时关闭文件。将文件句柄分配给变量并稍后将其用于close
文件是一种更好的做法。
如何处理从命令行传入变量,因为选项在其他答案中处理。
答案 2 :(得分:0)
第一步是将程序保存在文件中,在顶部添加#!/usr/bin/env ruby
,然后chmod +x yourfilename
以便能够执行您的文件。
现在您可以从命令行运行脚本了。
其次,您需要稍微修改脚本以获取命令行参数。在Ruby中,命令行参数存储在ARGV
内,所以类似
ARGV.each do|a|
puts "Argument: #{a}"
end
允许您检索命令行参数。