problema com espaços no nome do diretório para variável de perfil

0

Estou tentando criar uma variável para um diretório que tenha um espaço em seu nome no meu perfil.

Parece algo como:

variable=/path/to/directory/with space/; export $variable

Eu tentei muitas variações diferentes das abaixo, algumas das quais eu provavelmente esqueci de adicionar:

variable=/path/to/directory/"with space/"; export $variable  
variable=/path/to/directory/"with\ space/"; export $variable  
variable="/path/to/directory/with space/"; export $variable  
variable='/path/to/directory/with space/'; export $variable  
variable='/path/to/directory/with\ space/'; export $variable  
variable=""/path/to/directory/with space/""; export $variable  
variable="'/path/to/directory/with space/'"; export $variable  
variable=/path/to/directory/with\ space/; export $variable  
variable=/path/to/directory/with\ space/; export $variable  
variable=/path/to/directory/with\\ space/; export $variable  
variable=/path/to/directory/with\\ space/; export $variable

Posso fazê-lo funcionar com uma das versões acima, mas tenho que citar a variável, ou seja, ls "$variable" . Isso funciona e é bom, mas eu queria saber se alguém sabia de uma maneira que eu possa fazer isso funcionar sem ter que citar a variável?

    
por Jdub87 02.08.2017 / 17:31

1 resposta

0

Para atribuir a variável, estes funcionarão:

VARIABLE="/path/to/directory/with space"  # Preferred way
VARIABLE='/path/to/directory/with space'
VARIABLE=/path/to/directory/"with space"
VARIABLE=/path/to/directory/'with space'
VARIABLE=/path/to/directory/with" "space
VARIABLE=/path/to/directory/with' 'space
VARIABLE=/path/to/directory/with\ space

Para exportar , você precisa usar seu nome ( VARIABLE ), não seu conteúdo ( $VARIABLE ).

export VARIABLE

Ou faça a atribuição e exporte em uma linha:

export VARIABLE="/path/to/directory/with space"

Para usar , você deve sempre citá-lo , para evitar divisão (e globbing em outros casos).

ls "$VARIABLE"

Bem, eu escrevi o nome em letras maiúsculas aqui desde essa é a convenção para variáveis de ambiente (e variáveis de shell como RANDOM ). E deixei de lado a barra final, já que ela não é necessária, e pode ser confusa em alguns casos, mas essa é uma preferência mais pessoal.

    
por wjandrea 06.10.2018 / 22:19