There are many ways to run external commands in Ruby: surround with backticks, enclose in %x{}, call Kernel#system…
None of those approaches let you display the output of the command in real time while simultaneously capturing the output. Here’s a gist showing how to use IO.popen to capture output, display output, and check exit status: