Rake Capistrano - 如何传递动态参数来执行shell命令

时间:2016-02-10 10:57:41

标签: ruby-on-rails ruby parameters rake capistrano

在我的Rake capistrano脚本中,我正在创建需要动态参数的shell命令。我的rake代码如下

execute "sed -i '/SPARK_HOME=/c\\export SPARK_HOME=<arg1>' #{release_path}/backend_layer/configs/hdfs/cluster.sh"

如何调用此rake并发送参数&lt; arg1&gt;,以便我的命令是动态的

1 个答案:

答案 0 :(得分:3)

编写您的rake任务,如下所示

desc 'Passing argument on rake task'
task :symlink_shared, [:arg1] => :environment do |t, args|
  execute "sed -i '/SPARK_HOME=/c\\export SPARK_HOME=#{args.arg1}' #{release_path}/backend_layer/configs/hdfs/cluster.sh"
end

然后,使用下面的参数运行cap脚本

cap staging postdeploy:symlink_shared[<your_arg1>]