Antworten:
[bearbeitet nach dem 1. Kommentar von: @chepner - danke!]
/ bin / bash erlaubt Bindestriche in Funktionsnamen, / bin / sh (Bourne-Shell) nicht. Hier wurde die anstößige "some-function" von bash exportiert, und bash namens yum, das / bin / sh aufrief und den obigen Fehler meldete.
Fix: Benenne die Shell-Funktionen um, damit sie keine Bindestriche haben
Man Bash sagt, dass Bash-Bezeichner bestehen können: "Nur aus alphanumerischen Zeichen und Unterstrichen"
Der / bin / sh-Fehler ist viel expliziter:
some-function () { :; }
sh: `some-function ': kein gültiger Bezeichner
Ändern / Korrigieren Sie den Funktionsnamen von "foo-bar"
nach"foo_bar"
Es ist die Namenskonvention, mit der bash ok ist, wobei als sh nicht .
Ersetzen Sie "-" (Bindestrich / Bindestrich / Minus) durch "_" (Unterstrich), und der Fehler wird behoben. Der Code funktioniert sowohl für Bash als auch für Sh
bash
einem Funktionsnamen ein Bindestrich zulässig ist, nur nicht in einem Parameternamen.