Problema com variáveis de ambiente

0

Eu tentei criar um atalho para mudar facilmente para algumas das minhas partições do Windows. Depois de montá-los, alguns funcionam bem, outros não. Veja o que acontece.

Meu ~/.bash_aliases contém:

export geo=/media/geo/Novo\ volume/Geo
export windows=/media/geo/OS/Users/Geo

Quando eu digito no terminal

geo@george-Ubuntu:~$ cd $windows
geo@george-Ubuntu:/media/geo/OS/Users/Geo$ 

funciona como esperado.

No entanto, quando tento:

geo@george-Ubuntu:/media/geo/OS/Users/Geo$ cd $geo
bash: cd: /media/geo/Novo: No such file or directory

Não consegue encontrar o diretório (certifica-se de que "Novo Volume" está montado e o diretório existe)

Como posso consertar isso? Link simbólico: Não existe tal arquivo ou diretório Não me ajudou.

    
por Geo 16.12.2014 / 20:20

3 respostas

2

Você vê:

bash: cd: /media/geo/Novo: No such file or directory

desde que você tentou definir uma variável para a pasta "/media/geo/Novo volume/Geo" (com um espaço) e o erro é sobre somente a primeira parte do caminho até o espaço , você vê, que o espaço é erroneamente tratado como separador.

Se você quiser usar

cd $geo

Você pode ter que incluir as aspas na string:

export geo='"/media/geo/Novo volume/Geo"'

que não é uma boa solução, uma abordagem melhor é definir um alias no seu .bash_aliases , por exemplo:

alias cd-geo='cd "/media/geo/Novo volume/Geo"'
alias cd-windows='cd /media/geo/OS/Users/Geo'
    
por rubo77 16.12.2014 / 21:00
2

Tudo o que você precisa fazer é citar a variável, pois ela contém um caractere de espaço.

cd "$geo"

A citação de variáveis que podem conter espaços é sempre uma boa prática no código shell.

    
por Gunnar Hjalmarsson 16.12.2014 / 22:49
1

Roubado de essa pergunta SO Se você cd "$geo" , aposto que você obtém o resultado correto

Dito isso, tente fazer

alias geo="cd /media/geo/OS/Users/Geo" e só usando geo (como um comando) para ir até lá.

    
por Mitch 16.12.2014 / 20:38