Comment gérer un espace lors de la définition de $ PATH


16

Je veux ajouter la lib sublime à mon chemin mais il y a un espace dedans.

J'ai essayé l'évidence comme si vous naviguiez dans le terminal (par exemple /Applications/Sublime\ Text\ 2.app/Contents)

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

Mais je reçois toujours l'erreur

/Applications/Sublime: No such file or directory

Je pourrais le renommer mais je suis curieux de savoir comment le résoudre. J'utilise bash.


essayer export PATH='/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH? En outre, cette nouvelle ligne est-elle destinée?
sage

Non, ce n'est pas une nouvelle ligne qui sort comme ça quand je l'ai collée. Votre suggestion n'a pas aidé et elle a tué mon chemin, donc je ne pouvais pas utiliser vi, j'ai dû passer à un autre shell pour revenir.
Shawn Vader

1
La suggestion de demure devrait le faire, mais utilisez des guillemets: export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"sinon, $ PATH ne sera pas développé.
jaume

Je l'avais à l'origine entre guillemets, mais dans le .bashrc, il ne l'aimait toujours pas.
Shawn Vader

Pourriez-vous être plus précis? Que voulez-vous dire par "ça n'a pas plu"? Vous obtenez une erreur (laquelle)? Ou cela n'a tout simplement pas fonctionné?
jaume

Réponses:


15

Utilisez une barre oblique inverse ou des guillemets, pas les deux. Vous mettez la séquence barre oblique inverse dans la PATHvaleur.

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

ou

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

Assurez-vous de ne pas envelopper la ligne: ce doit être des espaces, pas des retours à la ligne.

Notez que si vous voyez une erreur comme /Applications/Sublime: No such file or directorydans la export PATH=…ligne, alors vous avez une erreur de syntaxe dans cette ligne, comme un espace après le signe égal: l'affectation n'essaie pas de rechercher le répertoire. Si l'erreur se produit à un moment ultérieur, ce n'est pas dû à la valeur PATH, ou si c'est seulement très indirectement: il est parfaitement correct que les entrées dans $PATHn'existent pas, et un répertoire inexistant ne conduira pas à un message d'erreur .


4

Si le chemin est correctement défini sur .bash_profile, que ce soit avec des guillemets doubles ou avec une barre oblique inversée et qu'il comporte des espaces, vous devez appeler les variables avec des guillemets doubles .

Par exemple, si .bash_profileest défini comme ci-dessous:

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

Vous ne pouvez pas faire cd $SUBLIMEPATHpour changer le répertoire actuel, vous obtiendrez une No such file or directoryerreur. Mais avec des guillemets doubles comme cd "$SUBLIMEPATH"vous le pouvez.

J'espère que cette aide pour quelque chose.


3

Pour le résoudre, j'ai créé un lien sim

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

Je l'ai ensuite ajouté à mon chemin en utilisant vi sur ~. / Bashrc

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

N'oubliez pas de vous procurer le .bashrc pour récupérer vos modifications

source ~/.bashrc

1

Cela ne répond pas à la question. Cependant, il répond comme remarque faite dans l'une des réponses et discute une procédure similaire.

Il est également possible de créer un alias pour Sublime Text en modifiant .bash_profileou .bashrc(quel que soit le fichier de configuration BASH dans votre répertoire personnel).

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

Pour ce faire, il est nécessaire d'utiliser les DEUX barres obliques d'échappement et les guillemets . Notez en particulier qu'il s'agit d'une situation très différente de l'exportation du PATH comme mentionné ci-dessus, car là, cela n'a de sens que de faire l'un ou l'autre, mais pas les deux.

Notez également qu'il n'est pas nécessaire de créer d'abord un lien symbolique, comme le prétendent la documentation officielle de Sublime et de nombreuses autres sources. Cette réponse sur StackOverflow est juste.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.