Hello, seems like bash allows illegal function names, but refuses to unset them then:
|$ function 1a () { :; }||
|
|$ declare -f 1a ||
||1a () ||
||{ ||
|| :||
||}||
|
|$ unset 1a ||
||bash: unset: `1a': not a valid identifier
$
GNU bash, version 4.3.48(1)-release (x86_64-slackware-linux-gnu)|
The first character of a name should not be a digit:
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_235
