Odpowiedzi:
[edytowane po 1 komentarzu od: @chepner - dzięki!]
/ bin / bash zezwala na łączniki w nazwach funkcji, / bin / sh (powłoka Bourne'a) nie. Tutaj obrażająca „jakaś funkcja” została wyeksportowana przez bash, a bash o nazwie yum, który wywołał / bin / sh, który zgłosił błąd powyżej.
fix: zmień nazwę funkcji powłoki, aby nie miała łączników
man bash mówi, że identyfikatory bash mogą składać się z: „tylko znaków alfanumerycznych i znaków podkreślenia”
Błąd / bin / sh jest o wiele bardziej wyraźny:
some-function () { :; }
sh: `some-function ': niepoprawny identyfikator
bash
, łącznik jest dozwolony w nazwie funkcji, ale nie w nazwie parametru.