Linee di installazione variabili ambiente a percorsi multipli con bash


11

Ho molto lungo export PATH=A:B:C .... Posso creare più righe per averne una più organizzata come segue?

export PATH = A:
              B:
              C:

Risposte:


22

Tu puoi fare:

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

Ogni riga successiva viene aggiunta al percorso precedentemente definito. Questa è generalmente una buona abitudine, in quanto evita di distruggere il percorso esistente. Se si desidera che il nuovo componente abbia la precedenza, scambiare l'ordine:

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

In alternativa, potresti essere in grado di fare:

export PATH=A:\
B:\ 
C

dove \segna una continuazione di linea. Non ho testato questo metodo.


2
Si noti che exportè un comando incorporato, non una parola chiave né un'assegnazione sintattica. Quindi, se hai PATHelementi contenenti spazi bianchi (o caratteri glob), hai bisogno di virgolette doppie in giro export PATH="$PATH:B". Potresti anche scrivere PATH=$PATH:Be così via; hai solo bisogno di exportuna variabile una volta, non ogni volta che cambia (tranne in alcune shell Bourne molto vecchie), e non hai bisogno delle doppie virgolette in un compito.
Gilles 'SO- smetti di essere malvagio'

1
PATH+=:BFunziona anche per la concatenazione di stringhe.
Aryeh Leib Taurog,

4

Puoi estendere le linee in bash usando una barra rovesciata alla fine di una linea come questa:

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

Si noti che l'assenza di spazi bianchi è importante qui.


0

Un altro approccio:

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

Ha il vantaggio di non rovinare i livelli di rientro.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.