Esa línea en tu .profiledebería ser una de
export PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH="$PATH:$HOME/Unix/homebrew/bin"
PATH=$PATH:$HOME/Unix/homebrew/bin
PATH=$PATH:~/Unix/homebrew/bin
El ~carácter solo se expande a su directorio de inicio cuando es el primer carácter de una palabra y no está entre comillas. En lo que escribió, el ~es entre comillas dobles y, por lo tanto, no se expande. Incluso si escribió export "PATH=$PATH:"~/Unix/homebrew/bin, el ~no se expandiría porque no está al comienzo de una palabra de shell.
Hay una dispensación especial, que está destinada a escribir valores PATHy variables similares. Si ~está justo después del signo igual que marca una tarea, o si ~está justo después de un :en el lado derecho de una tarea, entonces se expande. Solo las asignaciones simples tienen esta dispensación, export PATH=…no cuenta (es una llamada al exportbuiltin, que tiene un argumento que contiene un =carácter).
Aquí, no necesita exportar PATHporque ya se ha exportado. No necesita llamar exportcuando cambia el valor de una variable (excepto en los antiguos shells Bourne que no encontrará en OSX o Linux). Además, en una tarea (de nuevo, exportno cuenta), no necesita comillas dobles alrededor del lado derecho, por lo que PATH=$PATH:~/Unix/homebrew/bines seguro incluso si $PATHcontiene espacios.
whichno tiene la culpa aquí; el~debería haberse ampliado en la definición dePATH. Hay una rareza en bash en la que se expande de~todos modosPATH, por lo que dos errores hacen un correcto, más o menos.