Hello,
I am new here, so I apologize if this is a lame question. I have googled
for quite awhile trying to find out the answer to my question to no
avail.
In a script, I am issuing this line:
returnAddress = `defaults read
/path/to/conappsqa.bundle/serverconfig serverAddress`
Which reads a plist entry on my computer. If the plist entry is not
present then I get the following spew on the command line when I run the
script:
2010-07-08 09:32:37.273 defaults[29326:40b]
The domain/default pair of (/path/to/conappsqa.bundle/serverconfig,
serverAddress) does not exist
Is there a way I can eliminate this kind of spew? I just want to execute
the code and handle the error. I don’t want all the mess.
Any tips?
Thanks.
Have you tried just simply stderr? You could either run the script and
have 2>/dev/null be the redirect, or inside the backticks I think you
can safely use the same redirect.
You can do it more ruby specific by redefining $STDERR, but that’s
probably overkill if it’s a simple script.
James
David C. wrote:
Any tips?
If you’re running under some Unix-like O/S, then try
returnAddress = defaults read /path/to/conappsqa.bundle/serverconfig serverAddress 2>/dev/null
Otherwise look at open3.rb in the standard library.
2010/7/8 David C. [email protected]:
returnAddress = `defaults read
Is there a way I can eliminate this kind of spew? I just want to execute
the code and handle the error. I don’t want all the mess.
Any tips?
If you want to silence all error output and you run on some form of
*nix you can do:
$stderr.reopen ‘/dev/null’
Example:
$ ruby19 -e ‘x=sh -c "echo foo >&2"
’
foo
$ ruby19 -e ‘$stderr.reopen(“/dev/null”);x=sh -c "echo foo >&2"
’
$
Otherwise you need open3 as Brian said or do the fork exec yourself.
Kind regards
robert