> i do have a shell script doing : > > `man "#{arg}" 2> "#{tmp}/#{fm}" PIPE man2html > "#{tmp}/#{f1}"` > > because i want to know if there is "No manual entry for "#{arg}"" > > then for the time being i'm using an tmp file "#{tmp}/#{fm}" which i > read after to know i i get the message : > > "No manual entry for "#{arg}"" > > i'm sure there is a more elegant way doing that in Ruby, avoiding > shelling, BUT HOW TO ? If you want to do it completely within Ruby, you could first slurp the output of man into a Ruby variable, i.e. man_page=%x(man #{arg}) and if it is OK, i.e. if man_page.length > 0 ... send this as stdin into man2html, i.e. something like: to_html=IO.popen("man2html >#{f1}","w") to_html.print(man_page) to_html.close From a logical point of view, this solution has the advantage that you don't overwrite your file f1 if the man page does not exist. For a simpler solution (a bit dirty, but less keystrokes), you might consider the following idea, which however *does* use a shell: error_message=%x[(man #{arg}|man2html >#{f1}) 2>&1] After this, error_message contains whatever man and/org man2html spilled out onto stderr, but f1 is always overwritten (even if there is no man page). HTH, Ronald -- Ronald Fischer <ronald.fischer / venyon.com> Phone: +49-89-452133-162