bug-bash
[Top][All Lists]
Advanced

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

Re: syntax error while parsing a case command within `$(...)'


From: Chet Ramey
Subject: Re: syntax error while parsing a case command within `$(...)'
Date: Tue, 16 Feb 2021 09:49:12 -0500
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.7.1

On 2/16/21 12:29 AM, Oğuz wrote:
16 Şubat 2021 Salı tarihinde Koichi Murase <myoga.murase@gmail.com <mailto:myoga.murase@gmail.com>> yazdı:

    bash -c ': $(case x in esac)'
    bash -c ': $(case x in (x) if :; then echo a; fi esac)'
    bash -c ': $(case x in (x) a() { echo a; } esac)'
    bash -c ': $(case x in (x) for ((i=0;i<10;i++)) { echo a; } esac)'
    bash -c ': $(case x in (x) while false; do echo a; done esac)'
    bash -c ': $(case x in (x) case y in (y) echo a;; esac esac)'


I'm lost. Are these even supposed to work outside command substitution? Why?

The same principle that you articulated earlier: the last command-list
doesn't need to be delimited by a DSEMI as long as the esac is recognized
as a separate token, and then it goes on from there to the conditions
under which reserved words are recognized.

This is just academic. No sane person would write these without some kind
of delimiter.

--
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/



reply via email to

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