Blah.  Yeah, I muffed that--don't use a colon.

Regarding Bruce's comment, you wouldn't think they're still around, but this is what 
/bin/sh does on Tru64 5.1.  (5.1 is almost the latest version; there's a 5.1a.)

Mike


> -----Original Message-----
> From: Tom Lane [mailto:[EMAIL PROTECTED]]
> Sent: Friday, July 19, 2002 9:38 AM
> To: Bruce Momjian
> Cc: Coleman, Michael; [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: Re: [BUGS] pg_ctl failure with older Bourne shells (use
> ${1:+"$@"}) 
> 
> 
> Bruce Momjian <[EMAIL PROTECTED]> writes:
> > Yes, I have seen this fix before.  Are people still using 
> shells that
> > don't handle "$@" properly?  I guess so or you wouldn't 
> have reported
> > it.
> 
> I remember having submitted just such a patch a few years ago (for a
> different one of our scripts of course) when I was still using HPUX 9.
> I'm not sure if later HPUXen have better shells.  Plain 
> /bin/sh on this
> platform is ancient.
> 
> > We only use "$@" in a few places so I am applying this patch.
> 
> Could you check for other scripts where the same thing may have snuck
> in?
> 
> BTW, O'Reilly's "Unix Power Tools" recommends
>       ${1+"$@"}
> as the most portable replacement for "$@".  Mike's version has :+
> which is not the same.  My man page for the Bourne shell says
> 
>      ${parameter:+word}
>                     If parameter is set and is non-null, 
> substitute word;
>                     otherwise substitute nothing.
> 
>      ...
> 
>      If the colon (:) is omitted from the above expressions, 
> the shell only
>      checks whether parameter is set or not.
> 
> It looks to me like the book's method is more correct --- it 
> won't mess
> up in the case where $1 has been explicitly given as "".
> 
>                       regards, tom lane
> 

---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?

http://archives.postgresql.org

Reply via email to