>Synopsis:      ksh: case statement in command substitution raises a syntax 
>error
>Category:      system
>Environment:
        System      : OpenBSD 6.4
        Details     : OpenBSD 6.4 (GENERIC.MP) #364: Thu Oct 11 13:30:23 MDT 
2018
                         
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP

        Architecture: OpenBSD.amd64
        Machine     : amd64
>Description:

All of four commands below shall output "OK":

1. (case 1 in (1) echo OK;; esac)
2. (case 1 in 1) echo OK;; esac)
3. echo $(case 1 in (1) echo OK;; esac)
4. echo $(case 1 in 1) echo OK;; esac)

With OpenBSD ksh(1), however, all but 4. behave as expected.

$ (case 1 in (1) echo OK;; esac)
OK
$ (case 1 in 1) echo OK;; esac)
OK
$ echo $(case 1 in (1) echo OK;; esac)
OK
$ echo $(case 1 in 1) echo OK;; esac)
ksh: syntax error: `;;' unexpected

It seems a bug in eval.c but I could not find where it exactly is.

The problem initially targeted bash and zsh, and was described
in the following (Japanese) article:

https://qiita.com/richmikan@github/items/8eebbacc73f80c18a728

Reply via email to