运行Linux系统从Ruby脚本命令
问题描述:
我有一个创建一个Debian软件包,它的工作原理以下罚款Ruby脚本:运行Linux系统从Ruby脚本命令
#!/usr/bin/ruby dest = "#{File.dirname(__FILE__)}/../build" package = "foo" [ "cd #{dest} && tar czvf data.tar.gz bin console data.sql etc filter install.rb", "cd #{dest} && tar czvf control.tar.gz control", "cd #{dest} && echo 2.0 > debian-binary", "cd #{dest} && ar -cr #{package}.deb debian-binary control.tar.gz data.tar.gz", "cd #{dest} && mv #{package}.deb ..", "cd #{dest} && rm data.tar.gz control.tar.gz", ].each do |command| puts command system(command) end
是否有红宝石的方式,我可以不指定“CD#{ dest} & &“每个命令的一部分?
答
Dir.chdir(dest) do
# code that shall be executed while in the dest directory
end
Dir.chdir
当用一个块调用时会改变到给定的目录,执行该块然后改回来。
您也可以在没有块的情况下使用它,在这种情况下,它永远不会变回。
答
是的。使用Dir.chdir
:
#!/usr/bin/ruby
dest = "#{File.dirname(__FILE__)}/../build"
package = "foo"
Dir.chdir dest
[
"tar czvf data.tar.gz bin console data.sql etc filter install.rb",
"tar czvf control.tar.gz control",
"echo 2.0 > debian-binary",
"ar -cr #{package}.deb debian-binary control.tar.gz data.tar.gz",
"mv #{package}.deb ..",
"rm data.tar.gz control.tar.gz",
].each do |command|
puts command
system(command)
end
甜。像魅力一样工作。谢谢! – 2010-07-09 21:49:16