Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Aug 2005 15:23:43 +0200
From:      Joerg Sonnenberger <joerg@britannica.bec.de>
To:        freebsd-hackers@freebsd.org
Subject:   Re: [patch] rc.d/tmp (silly mkdir usage)
Message-ID:  <20050802132343.GA3012@britannica.bec.de>
In-Reply-To: <20050802130812.GA23261@sinanica.bg.datamax>
References:  <51934.68.95.232.238.1122957425.squirrel@68.95.232.238> <20050802062937.GA31485@sinanica.bg.datamax> <42EF5072.30808@freesbie.org> <20050802110632.GB85997@sinanica.bg.datamax> <20050802111535.GA2468@britannica.bec.de> <20050802130812.GA23261@sinanica.bg.datamax>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Aug 02, 2005 at 04:08:12PM +0300, Vasil Dimov wrote:
> On Tue, Aug 02, 2005 at 01:15:35PM +0200, Joerg Sonnenberger wrote:
> > On Tue, Aug 02, 2005 at 02:06:32PM +0300, Vasil Dimov wrote:
> > > On Tue, Aug 02, 2005 at 12:52:34PM +0200, Dario Freni wrote:
> > > > Vasil Dimov wrote:
> > > > > Even we can use
> > > > > if [ -d /tmp -a -w /tmp ] ; then
> > > > > or (which is equivalent)
> > > > > if [ -d /tmp ] && [ -w /tmp ] ; then
> > > > > and save external commands (mkdir) execution and directory
> > > > > creation/deletion at all.
> > > > 
> > > > You can't use test -w here. The script is checking if there is a
> > > > read-only filesystem. -w checks only the file flags (according to the
> > > > man page, at least).
> > > > 
> > > That's correct, -w cannot be used to check read-only filesystem.
> > 
> > Actually, you can. That's not portable behaviour though.
> > 
> 
> Well, look what I discovered:

As I said, it is not portable.

> 
> # mount |grep read-only
> /usr/ports on /mnt/ar0s2d/usr/ports5 (nullfs, local, read-only)
> # sh -c '[ -w /mnt/ar0s2d/usr/ports5 ] && echo writeable'
> # bash -c '[ -w /mnt/ar0s2d/usr/ports5 ] && echo writeable'
> writeable

I'd say this is a bug in the bash builtin :-)

Joerg



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050802132343.GA3012>