Linhas de configuração de variáveis ​​de ambiente com vários caminhos com bash

11

Eu tenho muito tempo export PATH=A:B:C .... Posso fazer várias linhas para ter uma mais organizada da seguinte maneira?

export PATH = A:
              B:
              C:
prosseek
fonte

Respostas:

22

Você pode fazer:

export PATH="A"
export PATH="$PATH:B"
export PATH="$PATH:C"

Cada linha subseqüente anexa ao caminho definido anteriormente. Geralmente, esse é um bom hábito, pois evita o descarte do caminho existente. Se você deseja que o novo componente tenha precedência, troque a ordem:

export PATH="A"
export PATH="B:$PATH"
export PATH="C:$PATH"

Como alternativa, você poderá:

export PATH=A:\
B:\ 
C

onde \marca uma continuação de linha. Não testou este método.

desenvolvimento
fonte
2
Observe que exporté um comando interno, não uma palavra-chave nem uma atribuição sintática. Portanto, se você tiver PATHelementos que contenham espaço em branco (ou caracteres glob), precisará de aspas duplas export PATH="$PATH:B". Você também pode escrever PATH=$PATH:Be assim por diante; você só precisa de exportuma variável uma vez, nem toda vez que ela muda (exceto em algumas cascas Bourne muito antigas) e não precisa de aspas duplas em uma tarefa.
Gilles 'SO- stop be evil'
1
Também PATH+=:Bfunciona para concatenação de cadeias.
Aryeh Leib Taurog
4

Você pode estender linhas no bash usando uma barra invertida no final de uma linha como esta:

export PATH=/path/A:\
/path/B:\
/path/C

Observe que a ausência de espaço em branco é importante aqui.

Caleb
fonte
0

Outra abordagem:

export PATH=$(tr -d $'\n ' <<< "
   /path/A:
   /path/B:
   /path/C")

Tem o benefício adicional de não atrapalhar seus níveis de recuo.

Luke Davis
fonte