簡體   English   中英

從rake任務運行兩個ruby腳本

[英]Run two ruby scripts from rake task

因此,這是一個簡單的瑞克任務:

task :map_reduce do
  puts 'Running map reduce scripts...'
  ruby "#{PADRINO_ROOT}/map_reduce/raw_visits_map.rb '03-08-2016' 90" && ruby "#{PADRINO_ROOT}/map_reduce/raw_visits_reducer.rb"
end

第一個腳本在STDOUT中輸出結果,以供所謂的“ reducer”進一步讀取。 在終端中,我可以運行以下兩個腳本:

ruby first_script.rb param1 param2 | ruby second_script.rb

所以第二個腳本可以像這樣從STDOUT讀取

res = ARGF

但是,如何在該rake任務中排列2個執行?

我如何錯誤地嘗試了它不起作用。

將ruby類直接要求到rake任務中可能會更容易,但是如果要從rake任務中運行腳本,則可以使用反引號在Ruby中運行任何shell代碼,如下所示:

`ruby first_script.rb param1 param2 | ruby second_script.rb`

也許您應該使用反引號或%x語法。

另請參閱以下答案: Ruby,exec,system和%x()或Backticks之間的差異

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM