Date: Thu, 18 Jul 2002 00:50:03 +0200 From: "Mauritz Sundell" <mauritz.sundell@telia.com> To: "Abc Xyz" <abc@anchorageinternet.org>, "freebsd-questions" <questions@FreeBSD.ORG> Subject: Re: /dev/null and 2>&- Message-ID: <021301c22de4$4a1fd9f0$0e81a8c0@gilgamesh> References: <200207171247.g6HClE8B083466@anchorageinternet.org>
next in thread | previous in thread | raw e-mail | index | archive | help
----- Original Message ----- From: "Abc Xyz" <abc@anchorageinternet.org> No real name? To: "Mauritz Sundell" <mauritz.sundell@telia.com>; "freebsd-questions" <questions@FreeBSD.ORG> Sent: Wednesday, July 17, 2002 2:47 PM Subject: Re: /dev/null and 2>&- > > > i just installed 4.6-RELEASE, and notice that > > > the '2>&-' sh (FBSD) construct seems to be broken. > > > i am going thru all my scripts having to change > > > it to /dev/null ... > > > In what way is it broken? > > > If the construct is generally used for hiding errormessages, one > > should probably replace it with '2>/dev/null' anyway, since 2>&- > > only closes filedescriptor 2 at startup of program and the first file > > the program opens will be assigned the very same and all output > > to stderr will come up in that file. > > > Example, > > sh> tee < /dev/null 2>&- empty /nonexistent/missingfile > > sh> cat empty > > tee: /nonexistent/missingfile: No such file or directory > > sh> > > this example above is incorrect with regards to 4.6-RELEASE. Sorry, I forgot I had replaced my /bin/sh in 4.6-RELEASE with /bin/sh from 5.0-CURRENT due to problems when I was building and installing CURRENT over RELEASE. /bin/sh core-dumped under installation so I replaced the RELEASE sh with CURRENT:s and then the rest of installation worked. So, I have also have had trouble with /bin/sh from 4.6-RELEASE but in CURRENT it works again. I dont know how /bin/sh works in 4.6-STABLE Are where someone out there who wants to test it? And have better answers? > with 4.6-RELEASE, output is as follows: > > Example, > sh> tee < /dev/null 2>&- empty /nonexistent/missingfile > tee: /nonexistent/missingfile: No such file or directory > sh> cat empty > sh> > > > sh> tee < /dev/null 2>/dev/null empty /nonexistent/missingfile > > sh> cat empty > > sh> > > > > i figure it's not realistic to assume a bug this > > > obvious would make it to release stage, so my > > > question is - is something else going on? > > > or is this just due to changes in 'sh'? > > > is it a bug? or is it a permenent change? > I dont know the history of sh, but I also think it as a bug, and from my experience with CURRENT it look as it changed back to normal. But maybe there is an intended change, should look in STABLE. I have a vague memory of seeing mail about special treatment of filedescriptors 0,1 and 2 when calling fork() or was it setuid(), dont remember ... might be connected or? -- Mauritz Sundell, mauritz.sundell@telia.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?021301c22de4$4a1fd9f0$0e81a8c0>