我必须运行一大堆ruby脚本来生成一些结果。哪个顺序无关紧要。我只是不想逐一做Ruby file1.rb,Ruby file2.rb,Ruby file3.rb ......
我可以编写一个将所有文件组合在一起的脚本,并只发出一次命令来运行它们吗?
答案 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