【问题标题】:Passing arguments to a ruby script将参数传递给 ruby​​ 脚本
【发布时间】:2012-03-15 06:43:32
【问题描述】:

我运行这样的文件:

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}")

【问题讨论】:

    标签: ruby daemons


    【解决方案1】:

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

    require 'daemons'
    
    Daemons.run("hello.rb")
    

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

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

    daemons 将运行你的hello.rb

    ruby hello.rb world.csv data.csv
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我想你可能误解了我的意思。在 hello.rb 我将它设置为接受参数为 ARGV[0] 和 ARGV[1] 但它的守护进程没有正确传递它。
      • ARGV[0] 可能是当前文件的名称
      • 他可能误解了你的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多