Unbekannte Fehlermeldung im Terminal

Wenn ich das Terminal öffne, bekomme ich immer diese Meldung, die ich für einen Fehler halte:

/Users/sinisasasic/.zshrc:export:48: in diesem Zusammenhang nicht gültig: Support/GoodSync:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/ git/bin

Kann mir jemand bei der Übersetzung helfen, was das genau bedeutet und was ich tun soll, um es zu lösen, wenn es ein Problem ist?

Antworten (1)

.zshrc ist eine Datei, die ausgeführt wird, wenn Sie eine interaktive zsh-Shell starten, die sich in Ihrem Home-Verzeichnis befindet. Die Fehlermeldung besagt, dass Sie einen Exportbefehl haben, der in Zeile 48 falsch geschrieben ist. not valid in this contextbedeutet, dass Sie versuchen, etwas zu exportieren, das keine Variable ist. Es sieht so aus, als ob Sie versuchen, Ihrem PATH etwas hinzuzufügen, aber den aktuellen Pfad in der zshrc-Datei ersetzen. Überprüfen Sie diese Zeile in der Datei, es gibt wahrscheinlich eine Zeile in der Art von:

export $PATH=/some/directory/to/add/to/path/:$PATH

Sie müssen nur den ersten entfernen, $da er dort den aktuellen Pfad ersetzt, anstatt die PATH-Variable zuzuweisen:

export PATH=/some/directory/to/add/to/path/:$PATH

Siehe https://stackoverflow.com/questions/22394367/zsh-error-export54-not-valid-in-this-context

Ich habe die Zeile gemäß Ihrem Vorschlag geändert, aber das Problem bleibt bestehen – es wird immer noch dieselbe Meldung mit 2 neuen hinzugefügten Fehlermeldungen angezeigt: /Users/sinisasasic/.zshrc:export:48: in diesem Kontext nicht gültig: Support/GoodSync:/usr/ bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin /Users/sinisasasic/.rvm/scripts/rvm:12: Befehl nicht gefunden: uname /Users/ sinisasasic/.rvm/scripts/rvm:14: Befehl nicht gefunden: ps
@SinišaŠašić Können Sie den Text Ihrer .zshrc-Datei um Zeile 48 und die Ausgabe von angeben echo $PATH?
Zeilen 47–50 aus der .zshrc-Datei: # An Ihre Bedürfnisse anpassen ... export PATH=$PATH:/Users/sinisasasic/Library/Application Support/GoodSync:/usr/bin:/bin:/usr/sbin:/ sbin:/usr/local/bin:/usr/local/git/bin PATH=$PATH:$HOME/.rvm/bin # Füge RVM zu PATH für Scripting hinzu (ich habe $PATH gemäß deinem Vorschlag in PATH geändert, aber ich alles wieder zurückgesetzt, nachdem dieselbe Fehlermeldung angezeigt wurde)… Die Ausgabe von echo $PATH: /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr /local/git/bin:/Users/sinisasasic/Library/Application:/Users/sinisasasic/.rvm/bin
@SinišaŠašić Ich sehe das Problem. In der ersten Zeile haben Sie Application Support. Der Platz vermasselt es. Sie können es umgehen, indem Sie stattdessen Application\ Support einfügen, aber Leerzeichen in Pfaden können in einigen Fällen Probleme verursachen, daher ist es möglicherweise besser, einen symbolischen Link dieses Verzeichnisses zu einem Pfad ohne Leerzeichen zu erstellen.
Bitte entschuldigen Sie meinen Mangel an Wissen… Abschließend, sollte ich zuerst Folgendes tun: ln -s ~/Application\ Support/ ApplicationSupport, und dann den ApplicationSupport-Symlink verwenden, den ich hier erstellt habe: export PATH=$PATH:/Users/sinisasasic/Library /ApplicationSupport/GoodSync:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin, und ohne das '$' vor PATH?
@SinišaŠašić Schließen, aber Ihr Verknüpfungsbefehl ist falsch, versuchen Sie es: ln -s ~/Library/Application\ Support ~/Library/ApplicationSupportDie Exportzeile sieht in Ordnung aus.
Vielen Dank, es hat funktioniert! Ich frage mich nur … wie kommt es, dass die Fehlermeldung verschwunden ist, obwohl der Export PATH ein $-Zeichen davor hat (export PATH=$PATH:/Users/sinisasasic/Library/ApplicationSupport/GoodSync:/usr/bin:/bin:/usr/ sbin:/sbin:/usr/local/bin:/usr/local/git/bin)? Was hat sich geändert?
Das zweite PATHsollte ein $ haben. Wenn Sie ein $ setzen, ersetzen Sie im Grunde den aktuellen Wert dieser Variablen, anstatt sich auf die tatsächliche Variable zu beziehen. Das erste PATHhat kein $, weil Sie versuchen, die Variable zuzuweisen, das zweite hat ein $, weil Sie diese Pfade an die vorhandenen Pfade in der Variablen anhängen möchten. zB wenn der Wert von PATHist /usr/bin, wird dann echo $PATHgedruckt /usr/bin, aber echo PATHnur gedruckt, PATHweil es nur ein Name ist, das $ löst die Variable in ihren Wert auf.