workon
ist eine Funktion. Die Funktionsdefinition ist für eine Shell lokal und in den Subshells nicht sichtbar (wie bei Variablendefinitionen).
Sie müssen die Funktion exportieren, wenn Sie sie in Subshells sichtbar machen möchten. Von der Handbuchseite für bash
:
export [-fn] [name[=word]] ...
export -p
Die angegebenen Namen werden für den automatischen Export in die Umgebung der nachfolgend ausgeführten Befehle markiert . Wenn die
-f
Option angegeben ist, beziehen sich die Namen auf Funktionen . Wenn keine Namen angegeben werden oder die-p
Option angegeben wird, wird eine Liste mit Namen aller exportierten Variablen gedruckt. Die-n
Option bewirkt, dass die Exporteigenschaft von jedem Namen entfernt wird. Wenn auf einen Variablennamen folgt=word
, wird der Wert der Variablen auf word gesetzt.export
Gibt einen Exit-Status von 0 zurück, sofern keine ungültige Option gefunden wird, einer der Namen kein gültiger Shell-Variablenname ist oder -f mit einem Namen angegeben wird, der keine Funktion ist.
Daher wird die export -f workon
Funktionsdefinition Ihre Probleme lösen.