Date: Fri, 3 Feb 2023 11:22:23 -0500
From: Chet Ramey <[email protected]>
Message-ID: <[email protected]>
| > Hmm, I wonder whether <(:) could be a valid function name,
| > if it expands to something like /dev/fd/63?
|
| Bash doesn't allow that; it treats the < like a $ in this case.
If unquoted, the '<' would be an operator (redirection operator)
(or with bash extensions, <( is probably the operator there - doesn't
matter here) - operators cannot be part of a word, that violates the
tokenisation rules. But if quoted, they're just characters. In that
case they would form a word.
I'm not sure why bash prohibits quotes around function names, to allow
names containing operators, and white space, as well as the expansion
characters ($ ` * ? and [), and the quote characters themselves.
Is there something about the implementation which would fail if that
rule was removed?
kre