¿Cómo hacer frente a un espacio al configurar $ PATH?

16

Quiero agregar la lib sublime a mi ruta pero tiene un espacio en ella.

He intentado lo obvio como si navegaras en la terminal (por ejemplo /Applications/Sublime\ Text\ 2.app/Contents)

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

Pero sigo recibiendo el error

/Applications/Sublime: No such file or directory

Podría cambiarle el nombre, pero tengo curiosidad por saber cómo resolverlo. Estoy usando bash

Shawn Vader
fuente
intentar export PATH='/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH? Además, ¿se pretende esa nueva línea?
recatada
No, no es una nueva línea que aparece de esa manera cuando la pegué. Su sugerencia no ayudó y me cortó el camino, por lo que no pude usar vi, tuve que cambiar a un caparazón diferente para volver a cambiar.
Shawn Vader
1
La sugerencia de recatada debería hacerlo, pero use comillas dobles: de lo export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"contrario, $ PATH no se expandirá.
jaume
Lo tenía como comillas dobles originalmente, pero en el .bashrc todavía no me gustaba.
Shawn Vader
¿Podrías ser más preciso? ¿Qué quieres decir con "no le gustó"? ¿Recibes un error (cuál)? ¿O simplemente no funcionó?
jaume

Respuestas:

15

Use barra invertida o comillas, no ambas. Pones la secuencia barra invertida-espacio en el PATHvalor.

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

o

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

Asegúrese de no ajustar la línea: tiene que ser espacios, no líneas nuevas.

Tenga en cuenta que si ve un error como el /Applications/Sublime: No such file or directoryde la export PATH=…línea, entonces tiene un error de sintaxis en esa línea, como un espacio después del signo igual: la asignación no intenta buscar el directorio. Si el error se produce en algún momento posterior, entonces no se debe al valor PATH, o si es así de manera muy indirecta: está perfectamente bien que las entradas $PATHno existan, y un directorio inexistente no dará lugar a un mensaje de error .

Gilles 'SO- deja de ser malvado'
fuente
4

Si la ruta se establece correctamente en .bash_profile, ya sea con comillas dobles o con barra invertida y tiene espacios, debe llamar a las variables con comillas dobles .

Por ejemplo, si .bash_profilese establece como a continuación:

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

No puede hacer cd $SUBLIMEPATHpara cambiar el directorio actual, obtendrá un No such file or directoryerror. Pero con comillas dobles como cd "$SUBLIMEPATH"puedas.

Espero que esta ayuda para algo.

KEINOS
fuente
3

Para resolverlo hice un enlace sim en

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

Luego lo agregué a mi ruta usando vi en ~. / Bashrc

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

Recuerde buscar el .bashrc para recoger sus cambios

source ~/.bashrc
Shawn Vader
fuente
1

Esto no responde la pregunta. Sin embargo, aborda como una observación hecha en una de las respuestas, y analiza un procedimiento similar.

También es posible crear un alias para Sublime Text editando .bash_profileo .bashrc(cualquiera que sea el archivo de configuración de BASH en su directorio de inicio).

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

Para hacerlo, es necesario usar AMBAS barras y comillas de escape . Tenga en cuenta en particular que esta es una situación muy diferente de la exportación de la RUTA como se mencionó anteriormente, porque allí solo tiene sentido hacer uno u otro, pero no ambos.

Tenga en cuenta también que no es necesario crear primero un enlace simbólico, como afirman la documentación oficial de Sublime y muchas otras fuentes. Esta respuesta en StackOverflow lo hace bien.

roomwithaview
fuente