Tôi đang sử dụng IO.popen
trong Ruby để chạy một loạt các lệnh dòng lệnh trong một vòng lặp. Sau đó, tôi cần phải chạy một lệnh khác bên ngoài vòng lặp. Lệnh bên ngoài vòng lặp không thể chạy cho đến khi tất cả các lệnh trong vòng lặp kết thúc.Làm thế nào để chờ quá trình kết thúc bằng IO.popen?
Làm cách nào để chương trình chờ điều này xảy ra? Hiện tại lệnh cuối cùng đang chạy quá sớm.
Một ví dụ:
for foo in bar
IO.popen(cmd_foo)
end
IO.popen(another_cmd)
Vì vậy, tất cả cmd_foos
cần phải trả lại trước khi another_cmd
được chạy.
Cũng giống như một lưu ý thêm: sử dụng biểu mẫu khối phương pháp IO là thường an toàn hơn. Ngoài ra, trong 1,9 bạn nhận được thêm mạnh mẽ bởi vì các biến khối có phạm vi khác nhau mà ngăn ngừa sửa đổi cùng một biến được đặt tên bên ngoài khối (và bạn sẽ kiếm được một cảnh báo). –