我想传递一个参数rake独立于我运行的任务。
例如:
rake my_arg=foo
rake my_arg=foo :install
rake my_arg=foo :upgrade
rake my_arg=foo :bar
有办法做到这一点吗?
答案 0 :(得分:5)
您可以像这样发送参数:
rake some_task arg1=value arg2=value
然后在rake任务中从ENV
中拉出命名参数:
arg1 = ENV['arg1']
arg2 = ENV['arg2']
您还可以提供更多传统的命令行开关:
rake some_task -- --arg1=value --arg2=value
然后使用OptionParser(或其他一些选项解析器)解包ARGV
。如果您想使用开关,请不要忘记额外的 --
,这会告诉rake
停止将命令行解析为开关。
答案 1 :(得分:1)
这些参数通过rake放入ENV[]
,模拟环境变量。因此,您可以使用实际的环境变量。例如:
export my_arg=foo
rake install upgrade bar
由于你可以传递一个rake命令列表,你也可以这样做,即使它不是你原来问题的直接答案:
rake my_arg=foo install upgrade bar