Stdout

Hi! I’m developing an application, that needs to execute some ruby
files, and log the output in a txt file.
The problem that i have is that i can’t take this output.

Here is a piece of code:

filesToExec.each { |file|
system(“ruby “+scriptFolder+”/”+file) # I need this output
}

Thanks a lot!

You’re looking for something like

puts “ruby #{scriptFolder}/#{file}”

Chris D. wrote:

You’re looking for something like

puts “ruby #{scriptFolder}/#{file}”

Nono, the scripts that i’m running print in the screen “Testo Ok” or
“Test Fail”
i need to save these output in a TXT file.

Thanks!!

On Tue, Jul 14, 2009 at 1:23 PM, Agustin R.[email protected]
wrote:

Chris D. wrote:

You’re looking for something like

puts “ruby #{scriptFolder}/#{file}”

Nono, the scripts that i’m running print in the screen “Testo Ok” or
“Test Fail”
i need to save these output in a TXT file.

Thanks!!

If you only need to save a single line, you can do this:

results = ruby #{scriptFolder}/#{file}

If you need to be looking at multiple lines, you should check out
IO.popen

  • Lee

Lee Hinman wrote:

On Tue, Jul 14, 2009 at 1:23 PM, Agustin R.[email protected]
wrote:

Chris D. wrote:

You’re looking for something like

puts “ruby #{scriptFolder}/#{file}”

Nono, the scripts that i’m running print in the screen “Testo Ok” or
“Test Fail”
i need to save these output in a TXT file.

Thanks!!

If you only need to save a single line, you can do this:

results = ruby #{scriptFolder}/#{file}

If you need to be looking at multiple lines, you should check out
IO.popen

  • Lee

With this line results = ruby #{scriptFolder}/#{file} i’m saving only
the file location string. It’s the same as
results = “ruby “+scriptFoler+”/”+file
You only change the concatantio symbol by printing variables into the
string.

I need to save the cmd output, the output of the script.

So
With this
filesToExec.each { |file|
system(“ruby “+scriptFolder+”/”+file) # I need this output
}
I’m running the scripts, that’s correct? or i have to do it in other
way?

NO, its a back tick, not a quote. Look carefully.

On Tue, Jul 14, 2009 at 1:50 PM, Agustin R.[email protected]
wrote:

I’m running the scripts, that’s correct? or i have to do it in other
way?

Using ` instead of " executes the command and returns a string of the
output.

Try this in irb:

r = echo "hi"
puts r

and r should equal “hi\n”

  • Lee

At 2009-07-14 03:55PM, “Lee Hinman” wrote:

On Tue, Jul 14, 2009 at 1:50 PM, Agustin R.[email protected] wrote:
[…]

system(“ruby “+scriptFolder+”/”+file) # I need this output
[…]
I’m running the scripts, that’s correct? or i have to do it in other
way?

Using ` instead of " executes the command and returns a string of the
output.

Or use %x{} to stand out visually:

output = %x{ruby #{scriptFolder}/#{file}}