On 2025-03-06 11:58, Lawrence Velázquez wrote:
> On Thu, Mar 6, 2025, at 1:48 PM, microsuxx wrote:
>> {0} is no expansion
>> {0,} is
>> it must be 2+
>
> And this is documented. It is not a bug.
>
> A correctly-formed brace expansion must contain unquoted
> opening and closing braces, and at least one unquoted comma
> or a valid sequence expression. Any incorrectly formed
> brace expansion is left unchanged.
>
> https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html
Note that glibc's glob function also allows {abc} to produce abc.
But Bash cannot do this. The reason is that brace expansion is already
a deviation from POSIX.
In POSIX, the {} word has a special role: in the arguments of the
-exec predicate of the find utility, it denotes a character sequence
to be replaced with the path name being visited.
Even if {abc} were to denote abc, {} would continue to have to be a special
case denoting [}.
Or else Bash would need a flag to enable the behavior whereby {abc} is
abc and {} expands to nothing. Scripts turning on that flag would
have to carefully quote {} when using the find utility.