代码之家  ›  专栏  ›  技术社区  ›  Thanga

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

  •  2
  • Thanga  · 技术社区  · 9 年前

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

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

    我如何才能调用这个rake并发送参数<arg1>,所以我的命令是动态的

    1 回复  |  直到 9 年前
        1
  •  3
  •   Chezhian    9 年前

    像下面这样写你的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>]