Ich habe vor kurzem meine Bash (Mac OS X 10.6.8) von 3.2.48(1) auf 4.3.30(1) über Macports aktualisiert. Die Installation verlief zwar scheinbar reibungslos, aber die beiden Stellen in meiner ~/.bashrc, an denen ich dies getan hatte, export -f myfunc;
führten zu unerwarteten Ergebnissen. Verschiedene Dinge, darunter man
und more
, führen zu folgendem Fehler:
/bin/sh: line 6: 'BASH_FUNC_myfunc%%': not a valid identifier
In ~/.bashrc waren zwei Funktionen definiert, die es export -f
einem anderen Skript ermöglichten, diese Funktion aufzurufen. Der Fehler bezieht sich auf die erste Funktion in ~/.bashrc. Ich habe keine Ahnung, woher die Zeilennummer kommt. Die sekundären Skripte funktionieren normal. Das Entfernen export
des -f
Flags behebt zwar den Fehler, führt aber offensichtlich dazu, dass die Skripte die Funktion nicht mehr aufrufen können.
Was verursacht dieses Verhalten und wie kann ich meine Funktionen ordnungsgemäß in Bash 4 exportieren?