Ihr PATH enthält nicht expandiertes ~/bin . Ihre Shell versteht was ~/ bedeutet aber git offenbar nicht. Sie sollten den vollständigen Pfad zu ~/bin angeben in Ihrem PATH .
Wenn Sie PATH=~/"bin:${PATH}" verwendet haben statt PATH="~/bin:${PATH}" , würde eine Tilde-Erweiterung auftreten und PATH würde den erweiterten Pfad speichern. Aber es gibt ein Problem mit :~/bin: innerhalb von [[ ]] . Tilde nicht zu zitieren ist nicht die einzige Bedingung (siehe „Tilde-Erweiterung“ in man 1 bash). ), macht dies expandierend :~/bin: schwierig. Und Sie müssen es erweitern, um es mit dem vollständigen Pfad in PATH zu testen .
Es ist einfacher, $HOME zu verwenden :
[[ ":$PATH:" != *":$HOME/bin:"* ]] && PATH="$HOME/bin:${PATH}"
export PATH
$HOME expandiert wird, bevor die gesamte Zeichenfolge dem PATH zugewiesen wird Variable. Das bedeutet PATH enthält jetzt die volle Pfad zu Ihrem $HOME/bin . git wird diesen Weg verstehen.