Re: test or [ does not handle parentheses as stated in manpage

2022-09-06 Thread Chet Ramey
On 9/6/22 9:57 AM, Julian Gilbey wrote: On Tue, Sep 06, 2022 at 02:56:12PM +0100, Julian Gilbey wrote: Ah, thanks! May I suggest that adding this information as a note in the manpage would be very helpful? The man page says, in the `test' description: "Each operator and operand must be a

Re: test or [ does not handle parentheses as stated in manpage

2022-09-06 Thread Chet Ramey
On 9/6/22 1:51 AM, Julian Gilbey wrote: On Tue, Sep 06, 2022 at 12:03:20AM +0200, Andreas Schwab wrote: On Sep 05 2022, Julian Gilbey wrote: neither did using \( instead of (, and neither did putting spaces around the parentheses. You need to do both. Ah, thanks! May I suggest that

Re: test or [ does not handle parentheses as stated in manpage

2022-09-06 Thread Julian Gilbey
On Tue, Sep 06, 2022 at 02:56:12PM +0100, Julian Gilbey wrote: > > > Ah, thanks! May I suggest that adding this information as a note in > > > the manpage would be very helpful? > > > > The man page says, in the `test' description: > > > > "Each operator and operand must be a separate

Re: test or [ does not handle parentheses as stated in manpage

2022-09-06 Thread Julian Gilbey
On Tue, Sep 06, 2022 at 09:25:36AM -0400, Chet Ramey wrote: > On 9/6/22 1:51 AM, Julian Gilbey wrote: > > On Tue, Sep 06, 2022 at 12:03:20AM +0200, Andreas Schwab wrote: > > > On Sep 05 2022, Julian Gilbey wrote: > > > > > > > neither did using \( > > > > instead of (, and neither did putting

Re: test or [ does not handle parentheses as stated in manpage

2022-09-06 Thread Julian Gilbey
On Mon, Sep 05, 2022 at 11:04:41PM -0400, Dale R. Worley wrote: > Julian Gilbey writes: > > Upgrading to bash 5.2.0(1)-rc2 did not help, neither did using \( > > instead of (, and neither did putting spaces around the parentheses. > > It's ugly. The first point is that ( and ) are special

Re: test or [ does not handle parentheses as stated in manpage

2022-09-05 Thread Julian Gilbey
On Mon, Sep 05, 2022 at 06:05:04PM -0400, Greg Wooledge wrote: > On Mon, Sep 05, 2022 at 09:55:29PM +0100, Julian Gilbey wrote: > > if [ ("$1" = "yes" -o "$1" = "YES") -a ("$2" = "red" -o "$2" = "RED") ] > > You're doing it wrong. The parentheses have to be quoted, and separate. > > [ "(" "$1"

Re: test or [ does not handle parentheses as stated in manpage

2022-09-05 Thread Julian Gilbey
On Tue, Sep 06, 2022 at 12:03:20AM +0200, Andreas Schwab wrote: > On Sep 05 2022, Julian Gilbey wrote: > > > neither did using \( > > instead of (, and neither did putting spaces around the parentheses. > > You need to do both. Ah, thanks! May I suggest that adding this information as a note

Re: test or [ does not handle parentheses as stated in manpage

2022-09-05 Thread Dale R. Worley
Julian Gilbey writes: > Upgrading to bash 5.2.0(1)-rc2 did not help, neither did using \( > instead of (, and neither did putting spaces around the parentheses. It's ugly. The first point is that ( and ) are special characters and if unquoted are isolated tokens that have special syntax. So in

Re: test or [ does not handle parentheses as stated in manpage

2022-09-05 Thread Greg Wooledge
On Mon, Sep 05, 2022 at 09:55:29PM +0100, Julian Gilbey wrote: > if [ ("$1" = "yes" -o "$1" = "YES") -a ("$2" = "red" -o "$2" = "RED") ] You're doing it wrong. The parentheses have to be quoted, and separate. [ "(" "$1" = yes" -o "$1" = YES" ")" -a ... ] I'd strongly recommend that you DON'T

Re: test or [ does not handle parentheses as stated in manpage

2022-09-05 Thread Andreas Schwab
On Sep 05 2022, Julian Gilbey wrote: > neither did using \( > instead of (, and neither did putting spaces around the parentheses. You need to do both. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something