我正在使用capistrano 3.4编写一个任务,在已部署的代码中打印git版本号。我能够打印代码。这里我想将输出代码存储在某个变量中。我如何在ruby变量中存储shell命令的输出。以下是我的任务。
desc "version number"
task :set_current_version do
on roles(:app) do
execute "version=#{current_path}/REVISION ; cat $version "
end
end
我需要将cat $ version输出存储在变量中。所以我可以在另一个代码中引用这个变量。
答案 0 :(得分:0)
我自己通过使用下面的捕获方法解决了这个问题。
on '1.example.com' do
if test("[ -f somefile.txt ]")
execute(:cp, 'somefile.txt', 'somewhere_else.txt')
end
ls_output = capture(:ls, '-l')
end