Как уже разъяснено в комментариях, вы не можете захватить выходные данные процесса, выполненного с использованием Process.exec
, но есть способы выполнить процесс и захватить его выходные данные.
Самый простой - обратные галочки:
output = `echo "Hello world"`
В более сложных сценариях (например, вам нужно отдельно захватывать стандартный вывод и вывод стандартных ошибок, нужно также получать его статус или иметь больший контроль над его выполнением), вы можете использовать что-то вроде этого:
stdout = IO::Memory.new
process = Process.new("echo", ["Hello world"], output: stdout)
status = process.wait
output stdout.to_s