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.