O nome da função foi criado por bash atualizado como uma resposta à vulnerabilidade shellshock .
Houve uma função chamada mc que foi exportada e sua versão bash está renomeando-a, prefixando BASH_FUNC_ e substituindo () por %% .
$ d() { date ; }
$ export -f d
$ env | grep %%
BASH_FUNC_d%% { date
Aqui está o patch bash de Florian Weimer que apresentou esta correção, datada de 25 de setembro de 2014:
http://seclists.org/oss-sec/2014/q3/att-693/variables-affix.patch
Observe que um nome de função pode conter quase todos os caracteres em bash , assim como um nome de comando em geral (ou seja, um nome de arquivo), portanto, %% é definitivamente válido aqui.