Date: Fri, 3 Feb 2023 11:22:23 -0500 From: Chet Ramey <chet.ra...@case.edu> Message-ID: <f1e549d5-59b0-e0af-c02f-fc3c8e50f...@case.edu>
| > 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