[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