Diese Zeile in Ihrer .profilesollte eine von sein
export PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH=$PATH:$HOME/Unix/homebrew/bin
PATH=$PATH:~/Unix/homebrew/bin
Das ~Zeichen wird nur dann in Ihr Home-Verzeichnis erweitert, wenn es das erste Zeichen eines Wortes ist und nicht in Anführungszeichen steht. In dem, was Sie geschrieben haben, ~steht das zwischen doppelten Anführungszeichen und ist daher nicht erweitert. Selbst wenn Sie geschrieben haben export "PATH=$PATH:"~/Unix/homebrew/bin, wird das ~nicht erweitert, da es nicht am Anfang eines Shell-Wortes steht.
Es gibt eine spezielle Abgabe, mit der Werte für PATHund ähnliche Variablen geschrieben werden sollen. Wenn ~es sich direkt um das Gleichheitszeichen handelt, das eine Zuweisung kennzeichnet, oder wenn ~es sich direkt nach a :auf der rechten Seite einer Zuweisung befindet, wird es erweitert. Nur einfache Zuweisungen haben diese Dispensation, export PATH=…zählen nicht (es ist ein Aufruf an den exporteingebauten, der zufällig ein Argument hat, das ein =Zeichen enthält ).
Hier müssen Sie nicht exportieren, PATHda es bereits exportiert wurde. Sie müssen nicht aufrufen, exportwenn Sie den Wert einer Variablen ändern (außer in alten Bourne-Shells, die Sie unter OSX oder Linux nicht finden). Außerdem exportbenötigen Sie in einer Zuweisung (zählt wiederum nicht) keine doppelten Anführungszeichen auf der rechten Seite, sodass dies PATH=$PATH:~/Unix/homebrew/binauch dann sicher ist, wenn $PATHLeerzeichen enthalten sind.
whichist hier nicht schuld; das~hätte in der Definition von erweitert werden sollenPATH. Es gibt eine Kuriosität in Bash, dass es das~ohnehin erweitertPATH, also machen zwei Fehler eine Art Recht.