Wydaje mi się, że utknąłem próbując odzyskać status wyjścia z polecenia powłoki, które zostało uruchomione z metody Ruby Open3.popen3().Jak odzyskać status wyjścia z ruby Open3.popen3()?
Oto mój kod:
require 'open3'
stdin, stdout, stderr = Open3.popen3('ls')
Kiedy teraz próbować dostępu $?
nadal jest nil
Czy to możliwe, aby odzyskać status wyjścia po tym wszystkim?
Notatki:
- ls
nie jest poleceniem, którego próbuję użyć w moim skrypcie. Po prostu użyłem tego, by dać przykład. Mój skrypt jest nieco bardziej złożony i zawiera dane wprowadzane przez użytkownika, dlatego potrzebuję funkcji dezynfekcji Open3.
- Próbowałem również wersji blokowej popen3, ale nie udało się z tym również.
Wiedziałem, że Open3 powraca również wątek, ale nie wiem, jak uzyskać swój kod wyjścia. 'wait_thr.value.success?' działa jak urok, dziękuję bardzo! – Griddo