Космический литерал как имя функции в bash

Этот вопрос слабо связан с одним из моих предыдущих. 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
1
задан 17 December 2017 в 12:33

3 ответа

Позвольте мне подчеркнуть соответствующую часть:

слово, состоящее исключительно из символов подчеркивания, цифр и алфавитов из переносного набора символов

Другие символы в переносном наборе символов недопустимы , Символ, находящийся в переносном наборе символов, является необходимым, но не достаточным условием.

1
ответ дан 22 May 2018 в 16:57
  • 1
    Ну, это просто немного раздражает, что каждое слово в стандарте должно быть истолковано. – Sergiy Kolodyazhnyy 17 December 2017 в 09:07
  • 2
    @SergiyKolodyazhnyy: D, и все же ваш вопрос является прекрасным примером того, почему они должны быть настолько точными в своих формулировках. Это может показаться вам интересным: stackoverflow.com/tags/language-lawyer/info – muru 17 December 2017 в 09:09
  • 3
    Жаль, что на бирке нет такого тега – Sergiy Kolodyazhnyy 17 December 2017 в 09:11

Позвольте мне подчеркнуть соответствующую часть:

слово, состоящее исключительно из символов подчеркивания, цифр и алфавитов из переносного набора символов

Другие символы в переносном наборе символов недопустимы , Символ, находящийся в переносном наборе символов, является необходимым, но не достаточным условием.

1
ответ дан 18 July 2018 в 01:03

Позвольте мне подчеркнуть соответствующую часть:

слово, состоящее исключительно из символов подчеркивания, цифр и алфавитов из переносного набора символов

Другие символы в переносном наборе символов недопустимы , Символ, находящийся в переносном наборе символов, является необходимым, но не достаточным условием.

1
ответ дан 24 July 2018 в 17:19

Другие вопросы по тегам:

Похожие вопросы: