Как сделать так, чтобы команда оболочки выполнялась синхронно в ruby?
Я хочу извлечь zip-файлы и удалить их при извлечении. Googling говорит мне, что самый простой способ разархивировать файлы в Ruby - это выполнить их с unzip filename.zip
, Мой следующий шаг - удалить ZIP-файл.
Второй шаг происходит так быстро, что команда оболочки unzip не имеет возможности даже увидеть файл до его удаления. Это ошибка, говоря
"unzip: cannot find either filename.zip or filename.zip.zip."
Я просто хочу иметь unzip...
Команда завершена, прежде чем продолжить выполнение сценария ruby. Я хочу, чтобы он синхронно блокировался. Есть способ сделать это? Я не могу спать, потому что не могу оценить, сколько времени это займет.
1 ответ
Обычные способы запуска внешней программы в ruby являются синхронными, поэтому проблем не должно быть.
Пытаться
`unzip`
или же
system("unzip")
или же
system("unzip x && rm x")