我有以下Ruby脚本创建一个Debian包,它工作正常:
#!/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
在Ruby中有没有办法可以省去每个命令的" cd#{dest} && "部分?
Dir.chdir(dest) do
# code that shall be executed while in the dest directory
end
Run Code Online (Sandbox Code Playgroud)
Dir.chdir 当使用块调用时将更改为给定目录,执行块然后更改回来.
您也可以在没有块的情况下使用它,在这种情况下它永远不会改变.
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |