From: "Berger, Daniel" Date: 2006-08-26T05:14:08+09:00 Subject: Re: Can you temporarily turn off STDERR ?? > -----Original Message----- > From: ara.t.howard@noaa.gov [mailto:ara.t.howard@noaa.gov] > Sent: Friday, August 25, 2006 1:46 PM > To: ruby-talk ML > Subject: Re: Can you temporarily turn off STDERR ?? > > > On Sat, 26 Aug 2006, bradjpeek wrote: > > > Inside a ruby script I want to: > > > > 1) redirect STDERR to /dev/null > > 2) Issue a system call (e.g. system(tar xf tarfile file) ) > > 3) revert to normal STDERR output > > > > I have a script that issues 3-4 system calls that are returning the > > following message to STDERR: > > > > warning: Insecure world writable dir /opt, mode 040777 > > > > I'd like to suppress these messages (Let's assume that I > can't change > > the permissions on /opt). > > > > An example of one of the lines that is throwing the error is: > > > > x = `tar tf mytar.tar` # envoke the unix tar command > > print x > > the warning is from ruby. > > $VERBOSE = nil > > will shut it up > > if you want it shut up only sometimes do > > def quiet > v = $VERBOSE > yield > ensure > $VERBOSE = v > end > > then > > x = quietly{ `tar tf mytar.tar` } > print x > > > Any suggestions? > > if you really want fine control over stdin/stdout/stderr of > executed commands check out my session and open4 libs > > http://codeforpeople.com/lib/ruby/session/session-2.4.0/README > http://codeforpeople.com/lib/ruby/open4/open4-0.5.1/README > > in particular the Open4::spawn command. both are available as This comes up often enough that I wonder if allowing IO#reopen to take a block would be a good idea: $stderr.reopen('/dev/null') do # Code here redirects to /dev/null end # Code outside the block behaves normally I thought this idea had been brought up before, and that there was some downside to this, but I can't find any references to it now. Thoughts? - Dan This communication is the property of Qwest and may contain confidential or privileged information. Unauthorized use of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy all copies of the communication and any attachments.