Этот вопрос слабо связан с одним из моих предыдущих. TL; DR от ответа muru заключается в том, что символы в имени функции должны быть на переносном наборе символов, чтобы быть действительными для имени функции. Проблема в том, что пространство находится в списке (символ <space> или <U0020>), поэтому я смущен тем, почему я не могу этого сделать:
$ $' '(){ echo "Hullo";}
bash: `' '': not a valid identifier
$ hello$' 'world(){ echo "hi";}
bash: `hello' 'world': not a valid identifier
С другими оболочками :
$ mksh -c '\ (){ echo "Hello";} '
mksh: : invalid function name
$ ksh -c '\ (){ echo "Hello";} '
ksh: : invalid function name
$ dash -c '\ (){ echo "Hello";} '
dash: 1: Syntax error: Bad function name
Позвольте мне подчеркнуть соответствующую часть:
слово, состоящее исключительно из символов подчеркивания, цифр и алфавитов из переносного набора символовДругие символы в переносном наборе символов недопустимы , Символ, находящийся в переносном наборе символов, является необходимым, но не достаточным условием.
Позвольте мне подчеркнуть соответствующую часть:
слово, состоящее исключительно из символов подчеркивания, цифр и алфавитов из переносного набора символовДругие символы в переносном наборе символов недопустимы , Символ, находящийся в переносном наборе символов, является необходимым, но не достаточным условием.
Позвольте мне подчеркнуть соответствующую часть:
слово, состоящее исключительно из символов подчеркивания, цифр и алфавитов из переносного набора символовДругие символы в переносном наборе символов недопустимы , Символ, находящийся в переносном наборе символов, является необходимым, но не достаточным условием.