Espaço no caminho do diretório na variável $ path no Linux

0

Estou usando o Red Hat Enterprise 5.3 e estou tentando adicionar um diretório à minha variável $ path, mas ele possui espaços. A variável $ path é delimitada por espaço, então como diferenciar um espaço em um caminho absoluto de um espaço que separa os caminhos?

    
por Brad 07.10.2009 / 21:43

3 respostas

2

Não é $ PATH delimitado por dois pontos? De qualquer forma, você precisa escapar dos espaços com \ . Se você quisesse ter um diretório chamado my dir , faria algo assim:

PATH=/bin /usr/bin /home/user/my\ dir /sbin

Este caminho é apenas um exemplo, não o copie textualmente.

    
por 07.10.2009 / 21:46
1

Parece que Brad está usando csh ou tcsh - esses shells têm $ path e $ PATH. O shell mantém os dois quando você altera o primeiro.

A maneira de adicionar o diretório com espaços para $ path:

% echo $path
/opt/local/bin /opt/local/sbin /usr/local/bin /usr/local/sbin /Users/dharris/bin
% echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/Users/dharris/bin

% set path = ($path /tmp/directory\ with\ spaces)

% echo $path
/opt/local/bin /opt/local/sbin /usr/local/bin /usr/local/sbin /Users/dharris/bin /tmp/directory with spaces
% echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/Users/dharris/bin:/tmp/directory with spaces
    
por 07.10.2009 / 22:58
1

No meu caso (usando csh), a variável $ PATH estava bagunçando e impedindo que $ caminho funcionasse, então aqui está uma solução alternativa:

set savePATH = $PATH
set path = ($path /usr/my\ dir/has\ spaces\ in\ it)
set PATH = ($savePATH)

Ressalva: caminhos com espaços devem ser adicionados por último, se você adicionar um caminho não espacoso ao caminho depois disso, ele atualizará automaticamente o $ PATH e o quebrará novamente.

    
por 08.10.2009 / 00:39

Tags