【问题标题】:How can I make a shell command execute synchronously in ruby如何使 shell 命令在 ruby​​ 中同步执行
【发布时间】:2012-08-28 01:35:04
【问题描述】:

我想提取 zip 文件并在提取时将其删除。谷歌搜索告诉我,在 Ruby 中解压缩文件的最简单方法是使用 unzip filename.zip 执行它们。我的下一步是删除 zip 文件。

第二步发生得如此之快,以至于 shell 命令 unzip 在文件被删除之前甚至没有机会看到文件。它错误地说

"unzip:  cannot find either filename.zip or filename.zip.zip."

我只想在继续执行 ruby​​ 脚本之前完成 unzip... 命令。我希望它同步阻塞。有没有办法做到这一点?我无法使用睡眠,因为我无法估计需要多长时间。

【问题讨论】:

  • 向我们展示您的代码是个好主意。
  • 请发布您的实际代码。

标签: ruby shell zip command unzip


【解决方案1】:

在 ruby​​ 中运行外部程序的通常方式是同步的,所以应该没有问题。

试试

`unzip`

system("unzip")

system("unzip x && rm x")

【讨论】:

  • 谢谢。我认为 system("unzip x && rm x") 会起作用。我已经通过使用 ruby​​zip 库解压缩解决了我的问题。但如果我必须执行一个 shell 命令,我想你的把戏会奏效。
猜你喜欢
  • 2011-11-29
  • 1970-01-01
  • 2015-11-20
  • 2014-12-29
  • 1970-01-01
  • 1970-01-01
  • 2017-12-26
  • 1970-01-01
相关资源
最近更新 更多