Wartość zwracana przez metode "system"

Oto przykładowy kod:

result = system('command 2>&1 |tee log.log')

Problem polega na tym, że metoda system zwróci exitstatus ostatniej komendy systemowej którą uruchomiło, w tym wypadku ‘tee’. Jak można pobrać exitstatus wzrócony przez pierwszą komende ‘command’)?

http://ruby-doc.org/core/classes/Open3.html

Lub `

Ale fajne, nie znałem. :slight_smile:

Może uściśle o co m chodzi. Chcę odpalić poprzez metode system (moze być inna, ważne aby forkowała proces) rake task i chcę aby output pojawiał się jednocześnie w konsoli jak i był logowany do pliku. Jednocześnie muszę znać exitcode rake tasku :slight_smile:

 system('rake xxx 2>&1 |tee log.log')

Jeśli użyje `` to output nie jest przekierowywany na konsole. Nie znam również exitcode’u rake tasku gdyż $? zwraca wynik ostatniej komendy czyli tee.

Ehhhh mam nadzieje, że jest to choć troche zrozumiałe :slight_smile:

A nie prościej jest pominąć “tee…” i zrobić zwykłe wywołanie, a jego wynik samemu (tzn. w skrypcie Rubiego) do logu zapisać i wypluć na konsolę?

Coś tu śmierdzi dziwnym hakiem.