On a Debian 12 machine with bash 5.2.15-2+b7, I had this alias in my .bashrc

 alias w3m='/usr/bin/w3m -no-cookie -o auto-image=TRUE '

I understand that aliases are frowned on and should be written as functions, so 
I wrote

 [[ $(type -t w3m) == "w3m" ]] && unalias w3m
 w3m() { /usr/bin/w3m -no-cookie -o auto-image=TRUE $@ ; }

and received the error message

 bash: .bashrc: line 86: syntax error near unexpected token `('
 bash: .bashrc: line 86: `w3m() { /usr/bin/w3m -no-cookie -o auto-image=TRUE $@ 
; }'

To fix this, I remove the numeral 3 from w3m, write wm() ... and then the error 
disappears.  But the bash man page says that numerals are allowed in names 
although it doesn´t say if a name can be a function name:

  name   A word consisting only of alphanumeric characters and underscores, and 
         beginning with an alphabetic character or an under‐score. 

The man page also says that a function name is an fname (not a name), and says 
"a function name can be any unquoted shell word that does not contain $".

Nothing in the man page appears to reject w3m so I do not understand why my 
function name w3m is refused.  

Roger

Reply via email to