bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Should nested case statements within command substitutions work on i


From: Bob Proulx
Subject: Re: Should nested case statements within command substitutions work on in bash 3.2.x?
Date: Sat, 21 Mar 2015 23:24:07 -0600
User-agent: Mutt/1.5.23 (2014-03-12)

Jon Seymour wrote:
> I was surprised that this didn't work with the OSX version of bash 3.2:
> 
>      /bin/bash -c 'echo $(case "yes" in yes) echo yes; ;; no) echo no; ;; 
> esac)'
> 
> /bin/bash: -c: line 0: syntax error near unexpected token `;;'
> /bin/bash: -c: line 0: `echo $(case "yes" in yes) echo yes; ;; no)
> echo no; ;; esac)'
>
> It does work with bash 4.x.

It was improved later.  But I see that zsh as of 5.0.7 still has the
same problem with that construct.

> Is this a known issue with 3.2 or is it particular to the OSX
> implementation (which in my case is 3.2.53(1))?

It is that way in 3.2 and not specific to your OS X implementation.

Of course you know that if you match the parens then it will parse
correctly.  Matching parens has been the standard way to handle this
case for all of the shells.

  $ bash -c 'echo $(case yes in (yes) echo yes ;; (no) echo no ;; esac)'
  yes

Bob



reply via email to

[Prev in Thread] Current Thread [Next in Thread]