Réponses:
[édité après le 1er commentaire de: @chepner - merci!]
/ bin / bash autorise les tirets dans les noms de fonction, / bin / sh (shell Bourne) ne le permet pas. Ici, la "fonction" incriminée avait été exportée par bash, et bash appelé yum qui appelait / bin / sh qui rapportait l'erreur ci-dessus.
correction: renommer les fonctions shell pour ne pas avoir de tirets
man bash dit que les identifiants bash peuvent consister en: "uniquement des caractères alphanumériques et des traits de soulignement"
L'erreur / bin / sh est beaucoup plus explicite:
some-function () { :; }
sh: `une fonction ': pas un identifiant valide
Changer / fixer le nom de la fonction de "foo-bar"
à"foo_bar"
C'est la convention de nommage avec laquelle bash est ok, alors que sh ne l'est pas.
Remplacez le "-" (trait d'union / tiret / moins) par "_" (trait de soulignement), et l'erreur est corrigée, et le code fonctionne à la fois sur bash et sh
bash
, un trait d'union est autorisé dans un nom de fonction, mais pas dans un nom de paramètre.