Wie gehe ich mit einem Leerzeichen um, wenn ich den $ PATH setze?

16

Ich möchte die erhabene Bibliothek zu meinem Pfad hinzufügen, aber sie enthält ein Leerzeichen.

Ich habe die offensichtlich versucht , wie Sie im Terminal navigieren würde (zB /Applications/Sublime\ Text\ 2.app/Contents)

export PATH="/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH"

Aber ich bekomme immer noch den Fehler

/Applications/Sublime: No such file or directory

Ich könnte es umbenennen, bin aber gespannt, wie ich es lösen kann. Ich benutze Bash.

Shawn Vader
quelle
versuchen export PATH='/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH? Ist diese Newline auch beabsichtigt?
zurückhaltend
Nein, es ist keine neue Zeile, die nur so herauskommt, als ich sie eingefügt habe. Ihr Vorschlag hat nicht geholfen und meinen Weg zerstört, konnte also vi nicht verwenden und musste zu einer anderen Shell wechseln, um zurück zu wechseln.
Shawn Vader
1
Demures Vorschlag sollte es tun, aber doppelte Anführungszeichen verwenden: export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"Andernfalls wird $ PATH nicht erweitert.
Jaume
Ich hatte es ursprünglich in doppelten Anführungszeichen, aber in der .bashrc mochte es immer noch nicht.
Shawn Vader
Könnten Sie genauer sein? Was meinst du mit "es hat nicht gefallen"? Erhalten Sie einen Fehler (welcher)? Oder hat es einfach nicht funktioniert?
Jaume

Antworten:

15

Verwenden Sie Backslash oder Anführungszeichen, nicht beide. Sie setzen den Backslash-Bereich der Sequenz in den PATHWert.

export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"

oder

export PATH=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH

Achten Sie darauf, die Zeile nicht zu umbrechen: Es müssen Leerzeichen und keine Zeilenumbrüche sein.

Beachten Sie, dass, wenn Sie einen Fehler wie /Applications/Sublime: No such file or directoryin der export PATH=…Zeile sehen, in dieser Zeile ein Syntaxfehler auftritt, z. B. ein Leerzeichen nach dem Gleichheitszeichen: Die Zuweisung versucht nicht, das Verzeichnis nachzuschlagen. Wenn der Fehler zu einem späteren Zeitpunkt auftritt, liegt dies nicht am PATH-Wert oder nur sehr indirekt daran, dass Einträge $PATHnicht vorhanden sind und ein nicht vorhandenes Verzeichnis nicht zu einer Fehlermeldung führt .

Gilles 'SO - hör auf böse zu sein'
quelle
4

Wenn der Pfad richtig eingestellt ist .bash_profile, sei es mit doppelten Anführungszeichen oder mit umgekehrten Schrägstrichen und Leerzeichen, müssen Sie die Variablen mit doppelten Anführungszeichen aufrufen .

Zum Beispiel, wenn .bash_profilewie folgt eingestellt ist:

export SUBLIMEPATH="/Applications/Sublime Text 2.app/Contents"
export PATH=$PATH:$SUBLIMEPATH/SharedSupport/bin/subl

Sie können nicht tun , um cd $SUBLIMEPATHdas aktuelle Verzeichnis zu ändern, erhalten Sie No such file or directoryFehler. Aber mit doppelten Anführungszeichen wie cd "$SUBLIMEPATH"Sie können.

Hoffe diese Hilfe für etwas.

KEINOS
quelle
3

Um das Problem zu beheben, habe ich einen Simlink erstellt

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/sublime/bin/subl

Ich habe es dann meinem Pfad hinzugefügt, indem ich vi auf ~. / Bashrc verwendet habe

export PATH="/usr/local/sublime/bin/:$PATH"

Denken Sie daran, die .bashrc-Quelle zu verwenden, um Ihre Änderungen zu übernehmen

source ~/.bashrc
Shawn Vader
quelle
1

Dies beantwortet die Frage nicht. Es wird jedoch als Bemerkung in einer der Antworten angesprochen und ein ähnliches Verfahren erörtert.

Es ist auch möglich, einen Alias ​​für Sublime Text durch Bearbeiten von ( .bash_profileoder .bashrcje nachdem, welche BASH-Konfigurationsdatei sich in Ihrem Home-Verzeichnis befindet) zu erstellen .

alias sublime="/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text"

Zu diesem Zweck müssen BEIDE Schrägstriche und Anführungszeichen verwendet werden . Beachten Sie insbesondere, dass dies eine ganz andere Situation ist als der oben erwähnte Export des PATH, da dort nur das eine oder das andere sinnvoll ist, nicht jedoch beide.

Beachten Sie auch, dass es nicht erforderlich ist, zuerst einen Symlink zu erstellen, wie die offizielle Sublime-Dokumentation und viele andere Quellen behaupten. Diese Antwort auf StackOverflow macht es richtig.

Zimmer mit Aussicht
quelle