Como lidar com um espaço ao definir o $ PATH

16

Eu quero adicionar a sublime lib ao meu caminho, mas tem um espaço nele.

Eu tentei o óbvio, como você navegaria no terminal (por exemplo /Applications/Sublime\ Text\ 2.app/Contents)

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

Mas ainda recebo o erro

/Applications/Sublime: No such file or directory

Eu poderia renomeá-lo, mas estou curioso para resolvê-lo. Estou usando o bash.

Shawn Vader
fonte
tentar export PATH='/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH? Além disso, essa nova linha é destinada?
recatada
Não, não é uma nova linha que sai dessa maneira quando colei. Sua sugestão não ajudou e isso acabou com meu caminho, então não podia usar o vi, tive que mudar para um shell diferente para voltar.
Shawn Vader
1
a sugestão de recatada deve fazer isso, mas use aspas duplas:, export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"caso contrário, $ PATH não será expandido.
jaume
Eu tinha como aspas duplas originalmente, mas no .bashrc ainda não gostava.
Shawn Vader
Você poderia ser mais preciso? O que você quer dizer com "não gostou"? Você recebe um erro (qual)? Ou simplesmente não funcionou?
jaume

Respostas:

15

Use barra invertida ou aspas, não as duas. Você coloca a sequência barra invertida no PATHvalor.

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

Certifique-se de não quebrar a linha: ela deve ser espaços, não novas linhas.

Observe que, se você vir um erro como /Applications/Sublime: No such file or directoryo da export PATH=…linha, haverá um erro de sintaxe nessa linha, como um espaço após o sinal de igual: a atribuição não tenta procurar o diretório. Se o erro ocorrer mais tarde, não será devido ao valor PATH, ou, se for o caso, apenas indiretamente: é perfeitamente aceitável que as entradas $PATHnão existam e um diretório inexistente não levará a uma mensagem de erro .

Gilles 'SO- parar de ser mau'
fonte
4

Se o caminho estiver definido corretamente como .bash_profile, entre aspas duplas ou com escape de barra invertida e com espaços, será necessário chamar as variáveis ​​com aspas duplas .

Por exemplo, se .bash_profileestiver definido como abaixo:

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

Você não pode fazer cd $SUBLIMEPATHpara mudar o diretório atual, você vai ter No such file or directoryerro. Mas com aspas duplas, como cd "$SUBLIMEPATH"você pode.

Espero que esta ajuda para alguma coisa.

KEINOS
fonte
3

Para resolvê-lo, criei um simlink em

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

Eu então o adicionei ao meu caminho usando vi em ~. / Bashrc

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

Lembre-se de usar o .bashrc para captar suas alterações

source ~/.bashrc
Shawn Vader
fonte
1

Isso não responde à pergunta. No entanto, aborda como observação feita em uma das respostas e discute um procedimento semelhante.

Também é possível criar um alias para Sublime Text editando .bash_profileou .bashrc(o que for o arquivo de configuração do BASH no diretório inicial).

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

Para fazer isso, é necessário usar AMBOS barras e aspas de escape . Observe, em particular, que esta é uma situação muito diferente da exportação do PATH, conforme mencionado acima, porque só faz sentido fazer uma ou outra, mas não as duas.

Observe também que não é necessário criar um link simbólico primeiro, como alegam a documentação oficial do Sublime e muitas outras fontes. Esta resposta no StackOverflow acerta.

quarto com uma vista
fonte