发出一个命令并运行多个Ruby文件

时间:2011-08-07 20:58:40

标签: ruby scripting

我必须运行一大堆ruby脚本来生成一些结果。哪个顺序无关紧要。我只是不想逐一做Ruby file1.rb,Ruby file2.rb,Ruby file3.rb ......

我可以编写一个将所有文件组合在一起的脚本,并只发出一次命令来运行它们吗?

5 个答案:

答案 0 :(得分:8)

我会做ruby风格并使用rake gem。

我会创建名为“rakefile.rb”的文件,这将是它的内容:

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

然后我会在我最喜欢的shell中调用rake,我会很喜欢它。

奖励:它是多平台

答案 1 :(得分:4)

假设您正在使用bash并且您想要运行的所有ruby文件都在当前目录中,您可以这样做:

for file in `ls ./*.rb`; do
  ruby $file
done

答案 2 :(得分:1)

runall.rb包含:

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

并致电ruby runall.rb

答案 3 :(得分:0)

你可以创建一个名为startruby.sh的sh脚本,看起来像这样(这个例子不起作用):

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

然后运行

sh startruby.sh

它会让所有的ruby脚本相继出现。 当然,你也可以通过for循环使其更先进,但这是最简单/最快捷的方式。

答案 4 :(得分:0)

取决于您想要的内容,但是如果您希望将所有文件一起加载,则可能类似于...

ruby -I. -e "ARGV.each {|f| load f}" file*.rb