Korzystanie z rozszerzonych znaków Unicode jest (bez wątpienia) przydatne dla wielu użytkowników.
Prostsze powłoki (ash (busybox), myślnik) i ksh nie działają z:
tést() { echo 34; }
tést
Ale bash , mksh , lksh i zsh wydają się na to pozwalać.
Wiem, że prawidłowe nazwy funkcji POSIX używają tej definicji nazw . Oznacza to, że wyrażenie regularne:
[a-zA-Z_][a-zA-Z0-9_]*
Jednak w pierwszym linku jest również powiedziane:
Implementacja może dopuszczać inne znaki w nazwie funkcji jako rozszerzenie.
Pytania są następujące:
- Czy jest to akceptowane i dokumentowane?
- Gdzie?
- Dla jakich muszli (jeśli istnieją)?
Powiązane pytania: Czy
możliwe jest użycie znaków specjalnych w nazwie funkcji powłoki?
Nie jestem zainteresowany używaniem metaznaków (>) w nazwach funkcji.
Nazwy funkcji upstart i bash zawierające „-”
Nie uważam, że operator (odejmowanie „-”) powinien być częścią nazwy.
alias
być nieco łagodniejszy. a więc możesz napisać funkcję pod jakąś właściwą, zapinaną na guziki nazwą, a następnie po prostu zdefiniować bardziej stylowy alias do wywołania funkcji. wdash
tam również pewne rzeczy można zrobić z$PATH
i%func
.