Ich versuche, jedes Problem zu beheben, das ich in habe brew doctor
, also sehe ich:
Warning: Some directories in your path end in a slash.
Directories in your path should not end in a slash. This can break other
doctor checks. The following directories should be edited:
/usr/local/Cellar/node/5.0.0/bin/
Ich schaue in ~/.profile
, ~/.bash_profile
, /etc/paths
– und sehe diesen Weg nicht.
Es gibt keine Dateien im /etc/paths.d/
Ordner, die diese Zeichenfolge enthalten.
Also woher dieses $PATH
Teil?
Aus Ihrer Frage geht hervor, dass das Problem ein Verzeichnis ist, das mit einer /
. Und es hört sich so an, als würde Homebrew Ihnen sagen, dass das Verzeichnis, das den Fehler verursacht, /usr/local/Cellar/node/5.0.0/bin/
. /
Wenn dies der Fall ist, müssen Sie einfach das Trailing aus diesem Verzeichnis entfernen .
Aber es hört sich auch so an, als würden Sie sagen, dass Sie dieses Problemverzeichnis nicht in Ihrer $PATH
. Running echo $PATH
zeigt Ihnen, welche Verzeichnisse sich in Ihrem PATH befinden. Wenn Ihr PATH wie meiner viele Verzeichnisse enthält, kann dies etwas schwer zu lesen sein. Vielleicht übersiehst du es also nur?
Auf jeden Fall ist hier ein einfaches Skript, das Ihnen alle Verzeichnisse in Ihrem PATH zeigt; 1 pro Zeile.
#!/bin/bash
# save IFS to a variable
old_IFS=${IFS$' \t\n'}
#set IFS to a colon
IFS=':'
for item in ${PATH[@]}
do
echo $item
done
# set IFS back to the default setting
IFS=$old_IFS
Oder wenn Sie es vorziehen, direkt in Ihr Terminal zu kopieren und einzufügen:
old_IFS=${IFS-$' \t\n'}; IFS=':'; for item in ${PATH[@]}; do echo $item; done; IFS=$old_IFS
Oder ein noch einfacherer Weg, wie von fd0 in den Kommentaren angegeben:
tr -s ':' '\n' <<<"$PATH"
Dies hat auch den zusätzlichen Vorteil, dass man nicht mit herumspielen muss IFS
.
Wenn Sie mit einem der oben genannten Skripte eine Zeile finden, die mit a endet, /
haben Sie den Übeltäter gefunden.
tr
Ihr Code könnte mit einem
vereinfacht werden herestring
-tr -s ':' '\n' <<<"$PATH"
echo $PATH
. Die Ausgabe wird sein /usr/local/Cellar/node/5.0.0/bin/ /usr/local/bin /usr/bin /bin /usr/sbin /sbin /opt/X11/bin /usr/local/sbin /Users/grawl/.composer/vendor/bin
./
von entfernen/usr/local/Cellar/node/5.0.0/bin/
/usr/local/Cellar/node/5.0.0/bin
ist ein Verzeichnis, keine Datei.
I0_ol
echo $PATH
in deinem Terminal versucht?klanomath
Данил Пронин
Данил Пронин
I0_ol
/
Wollen Sie damit sagen, dass Sie beim Ausführen kein Verzeichnis sehen, das mit a endetecho $PATH
?