Использование расширенных символов Юникода (без сомнения) полезно для многих пользователей.
Простые оболочки (ash (busybox), dash) и ksh не работают с:
tést() { echo 34; }
tést
Но bash , mksh , lksh и zsh, кажется, позволяют это.
Мне известно, что действительные имена функций POSIX используют это определение имен . Это означает, что это регулярное выражение:
[a-zA-Z_][a-zA-Z0-9_]*
Однако в первой ссылке также сказано:
Реализация может разрешить другие символы в имени функции в качестве расширения.
Вопросы:
- Это принято и задокументировано?
- Где?
- Для каких снарядов (если есть)?
Вопросы по теме:
Можно ли использовать специальные символы в имени функции оболочки?
Меня не интересует использование метасимволов (>) в именах функций.
Имена функций upstart и bash, содержащие «-».
Я не верю, что оператор (вычитание «-») должен быть частью имени.
alias
немного более снисходительным. и, таким образом, вы можете написать функцию с некоторым правильным, застегнутым именем, а затем просто определить псевдоним с более стильным именем для вызова функции. вdash
есть также некоторые вещи вы можете сделать с$PATH
и%func
.