NAME Session ::Sh ::Bash ::Csh ::Tcsh ::Shell ::IDL SYNOPSIS Session::* offers a set of class for driving external progams via pipes. It offers a significant abstraction over Open3::popen since stdout/stderr can be processed individually for each command. Additionally the exit_status of each command is made available. eg. bash = Session::Bash.new stdout, stderr = bash.execute 'ls' or bash = Session::Bash.new stdout, stderr = StringIO.new, StringIO.new bash.execute 'ls', :stdout => stdout, :stderr => stderr exit_status = bash.exit_status or bash = Session::Bash.new # output is passed to the block as it is produced! bash.execute( 'long_running_command.exe' ) do |out, err| logger << out if out elogger << err if err end SAMPLES see samples/* AUTHOR ara.t.howard@noaa.gov