Date: Wed, 4 Jun 2025 00:57:15 +0900 From: Koichi Murase <myoga.mur...@gmail.com> Message-ID: <caflrlk_1i3mmgf71+bdop2en5sfc+4ezp1gwo_w97tdvvnr...@mail.gmail.com>
| > xx. <( and >( can now be used in function names. | | What is the background of this change? I think I agree with the point here -- while I strongly believe that almost anything should be possible as a character in a function name (the one real exception is / as the rules for when functions are found mean that one containing a / will never be found, and of course \0 for all the obvious reasons). However, operators, white space, ... are still (and should remain) magic sequences in any shell, and not become part of a word (unless embedded in a command substitution or other expansion) - unless they are quoted. A function name should remain a shell "word" - including being possibly partly or fully a quoted word, after all, if it contains operator chars, white space, or quoting chars, then it will need to be quoted to be invoked, it seems eminently sensible to require such a thing to be quoted when defined as well. Quote removal should be applied to it when it is being defined (just as it is applied to the command name in a simple command, before that is looked up - as a function, built-in, or filesystem command). kre