2011-08-07 40 views
3

我必須運行一大堆ruby腳本才能生成一些結果。順序無關緊要。我只是不想做一個一個的Ruby file1.rb,Ruby file2.rb,Ruby file3.rb ...。發出一個命令並運行多個Ruby文件

我可以編寫一個將所有文件組合在一起的腳本,並只發出一次命令來運行它們?

回答

8

我會做Ruby的風格,並使用rake寶石。

我會創建一個名爲「rakefile.rb」的文件,這將是它的內容:

task :default do 
    FileList['file*.rb'].each { |file| ruby file } 
end 

然後我會叫rake在我最喜歡的外殼,我會喜歡它。

獎金:這是多平臺

1

runall.rb包含:

(1..3).each do |i| 
    `ruby file#{i}.rb` 
end 

,並呼籲ruby runall.rb

0

你可以做一個sh腳本稱爲startruby.sh看起來像這樣(這個例子不工作):

ruby ruby1.rb; 
ruby ruby2.rb; 
etc. 

然後運行

sh startruby.sh 

它將勞克所有紅寶石劇本一個接一個。 Offcourse您還可以通過for循環等方式使它更先進,但這是最簡單/最快捷的方式。

4

假設你正在使用bash,所有你想運行Ruby文件是在當前目錄下,你可以這樣做:

for file in `ls ./*.rb`; do 
    ruby $file 
done 
相關問題