Пробел в качестве имени функции в bash

Этот вопрос слабо связан с одним из моих предыдущих . TL; DR из ответа Муру состоит в том, что символы в имени функции должны быть в Переносимом наборе символов , чтобы быть действительным для имени функции. Проблема в том, что пробел находится в списке (символ <space> или <U0020>), поэтому я не понимаю, почему я не могу этого сделать:

$  

С другими оболочками:

$ 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
'(){ echo "Hullo";} bash: `' '': not a valid identifier $ hello

С другими оболочками:

$ 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
'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 в 11:33

1 ответ

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

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

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

1
ответ дан 7 December 2019 в 15:26

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

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