0

好吧,我有以下的任务,轨耙任务 - 进入命令行参数变量名

namespace :test do 
    task :a do |t,args| 
    p ENV.keys 
    end 
end 

$ rake test:a ARG1 = "me" ARG2 = "my wife" 

上面的命令会显示一个大阵列即ENV.keys

ENV.keys看起来像这样,

["MANPATH", "SSH_AGENT_PID",........,"BUNDLE_BIN_PATH", "RUBYOPT", "ARG1", "ARG2"] 

我只想要“ARG1”和“ARG2”,我不想要“MANPATH”,“RUBYOPT”等东西。 (不是“我”和“我的妻子”)。

命令行变量名称。不值。

帮助?

+0

结帐http://stackoverflow.com/questions/825748/how-do-i-pass-command-line-arguments-to-a-rake-task将命令行参数传递给rake任务 – AlexBrand 2013-04-22 11:46:30

+0

我检查了它。它不回答我的问题! – beck03076 2013-04-22 11:54:42

+0

对不起,我以为你对价值观感兴趣,而不是关键。 – AlexBrand 2013-04-22 11:56:36

回答

0

试试这样说:

namespace :test do 
    task :a, [:param_me, :param_wife] do |t, args| 
    p args.param_me 
    p args.param_wife 
    end 
end 

$ rake "test:a[me, my wife]" 

,如果你在你的参数空间中你只需要双引号。

+0

我并没有这样想,因为我的参数中有一个逗号,例如“我的”,“我的妻子”,“我的第二,第三和第四个妻子”。请注意第二个和第三个之间的逗号。该逗号不会与[这种方式]一起工作。 – beck03076 2013-04-22 18:56:27