Soweit ich es verstehe, ~/go/bin
basiert die Verwendung einer $ PATH-Komponente auf einer nicht standardmäßigen Erweiterung (vielleicht GNU?).
Wenn Ihre Shell (bash) nach Binärdateien sucht, wird das
~/
Präfix um den Pfad Ihres Home-Verzeichnisses erweitert. Man kann sehen, dasstype
das Go-Programm (das in die Shell eingebaut ist) genau das findet.Inzwischen ist der
/usr/bin/which
Befehl (die von macOS vorgesehen ist, und ist nicht Teil der Schale) nicht führt diese Erweiterung, weil es so etwas in der offenen Gruppe angegeben wurde offizielle Beschreibung, wie $ PATH funktionieren soll .
Mit anderen Worten, das ~/
Präfix ist Teil der Shellsprache, jedoch nicht Teil der allgemeinen Pfad-Syntax für das gesamte Betriebssystem. An allen anderen Stellen, einschließlich $ PATH (was nicht auf Shells beschränkt ist!), Bedeutet dies einfach ein Verzeichnis mit dem Namen ~
.
Bei der Einstellung von $ PATH müssen Sie sicherstellen, dass die Pfade zur Zuweisungszeit erweitert werden:
PATH=$PATH:~/go/bin PATH=$PATH:$HOME/go/bin PATH="$PATH:$HOME/go/bin"
Dieser wird nicht funktionieren:
PATH="$PATH:~/go/bin"