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