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: Dale R. Worley
Subject: Re: syntax error while parsing a case command within `$(...)'
Date: Sun, 14 Feb 2021 14:43:47 -0500

Before we worry about what to change, I want to note that the original
example is syntactically incorrect.  The example is

  $ bash -c ': $(case x in x) esac)'

But the manual page makes it clear that each case must be ended with
";;".

       case word in [ [(] pattern [ | pattern ] ... ) list ;; ] ... esac

Now, I haven't investigated what cleverness Bash uses, but all the cases
I've tested that conform to the case syntax are handled correctly inside
this $(...):

$ bash -c ': $( case x in x) : ;; esac )'
$ bash -c ': $( case x in x) true ;; esac )'
$ bash -c ': $( case x in (x) true ;; esac )'

It even works with the degenerate case where there are no coices, though
writing it is hard because "esac" is a keyword:

$ bash -c ': $( case x in 
more> esac )'

This is with an old version, 4.2.53(1).

Dale



reply via email to

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