22 votes

Comment faire face à un espace lors de la définition du $PATH ?

Je veux ajouter la librairie sublime à mon chemin mais il y a un espace dans celui-ci.

J'ai essayé l'évidence comme vous le feriez en naviguant 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.

20voto

staffan Points 3299

Utilisez la barre oblique inversée ou les guillemets, pas les deux. Vous mettez la séquence backslash-space dans la balise PATH valeur.

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

Veillez à ne pas envelopper la ligne : il doit s'agir d'espaces et non de retours à la ligne.

Notez que si vous voyez une erreur comme /Applications/Sublime: No such file or directory de la export PATH=… vous avez alors 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, alors elle n'est pas due à la valeur PATH, ou si c'est le cas, elle n'est que très indirecte : il n'y a pas de problème pour que les entrées dans le répertoire $PATH n'existe pas, et un répertoire inexistant ne donnera pas lieu à un message d'erreur.

6voto

KEINOS Points 161

Si le chemin est correctement défini à .bash_profile que ce soit avec des guillemets doubles ou des antislashs et qu'il comporte des espaces, vous devez appeler les variables avec des guillemets doubles .

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

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

Vous ne peut pas faire cd $SUBLIMEPATH pour changer le répertoire courant, vous obtiendrez No such file or directory erreur. Mais avec des guillemets doubles comme cd "$SUBLIMEPATH" vous pouvez.

J'espère que cela vous aidera.

3voto

Shawn Vader Points 311

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

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 mettre à jour le fichier .bashrc pour qu'il prenne en compte vos modifications.

source ~/.bashrc

0voto

roomwithaview Points 11

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

Il est également possible de créer un alias pour Sublime Text en éditant .bash_profile o .bashrc (celui qui est 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 à la fois les barres obliques inverses et les guillemets. . Notez en particulier qu'il s'agit d'une situation très différente de celle de l'exportation du PATH mentionnée ci-dessus, car dans ce cas, il n'est logique de faire que 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 le fait bien.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X