bash: caractère illégal dans une variable d'environnement

0

Selon man bash, les bashidentifiants peuvent consister en: "seulement des caractères alphanumériques et des traits de soulignement", cependant, bashsemble avoir été tolérant à cela jusqu'au shellshockpatch. En fait, c'est toujours le cas, mais maintenant, un message d'erreur gênant est lancé. J'avoue que j'ai pris une décision stupide lorsque j'ai décidé d'insérer des points dans mon schéma de nommage des fonctions, mais j'ai plus de 100 fonctions named.like.thiset, pour aggraver les choses, je dépend de cette structure, car elles sont organisées en "classes", et l'autre basé sur ce schéma de nommage. Je cherche une solution pour supprimer ce message d'erreur à l'échelle mondiale, car il est extrêmement peu pratique de changer tous les noms de fonctions.

my.function(){ echo hello world;}
export -f my.function
tar --help
/bin/bash: error importing function definition for `BASH_FUNC_my.function'
Usage: tar -[cxtzjhmvO] [-X FILE] [-T FILE] [-f TARFILE] [-C DIR] [FILE]...

(il ne se plaint que pour les fonctions exportées, mais la plupart d'entre elles doivent être exportées; la version de bash est la 4.2.37)

Ulrik
la source
4
Je suggérerais que vous preniez la peine une fois de réparer votre erreur de conception. Ce que vous demandez, c'est simplement de masquer l'odeur avec un assainisseur d'air.
Glenn Jackman
Ou ignorez stderr chaque fois que vous exportez une de ces fonctions, redirigez-vous vers null ... ne vous aidera probablement pas à résoudre les erreurs réelles
Xen2050