将参数传递给ruby脚本

时间:2012-02-24 19:53:22

标签: ruby daemons

我运行这样的文件:

ruby hello.rb world.csv data.csv

启动文件如何显示?我有这个。

require 'daemons'

pwd  = File.dirname(File.expand_path(__FILE__))

wFile = "#{pwd}/world.csv"
dFile = "#{pwd}/data.csv" 

Daemons.run("hello.rb #{wFile} #{dFile}")

2 个答案:

答案 0 :(得分:4)

您必须像这样创建一个文件hello_daemon.rb

require 'daemons'

Daemons.run("hello.rb")

并运行它(您可以使用startrestartrun之一:

ruby hello_daemon.rb start -- world.csv data.csv

daemonshello.rb作为

运行
ruby hello.rb world.csv data.csv

答案 1 :(得分:2)

使用全局常量ARGV(尽管没有太多东西需要学习)来接收带参数的字符串数组。
所以对于你的情况:

require 'daemons'

files = []
ARGV.each do |arg|
  files << File.expand_path(arg)
end

这应该为您提供每个参数的绝对路径,以便您可以从任何地方打开它们。