Tôi dường như bị kẹt cố gắng truy xuất trạng thái thoát của lệnh shell được khởi động từ phương thức Open3.popen3() của Ruby.Làm thế nào để lấy trạng thái thoát khỏi ruby Open3.popen3()?
Dưới đây là mã của tôi:
require 'open3'
stdin, stdout, stderr = Open3.popen3('ls')
Khi tôi bây giờ cố gắng truy cập $?
nó vẫn là nil
Có thể lấy lại trạng thái thoát sau khi tất cả?
Ghi chú:
- ls
không phải là lệnh tôi đang cố gắng sử dụng trong tập lệnh của mình. Tôi chỉ sử dụng điều này để đưa ra một ví dụ. Kịch bản của tôi phức tạp hơn một chút và chứa đầu vào của người dùng, đó là lý do tại sao tôi cần chức năng vệ sinh của Open3.
- Tôi cũng đã thử biến thể khối của popen3, nhưng cũng không thành công với biến thể đó.
Tôi biết rằng open3 cũng trả về một chuỗi nhưng không biết cách lấy mã thoát. 'wait_thr.value.success?' hoạt động như một sự quyến rũ, cảm ơn bạn rất nhiều! – Griddo