Líneas de configuración variable de entorno de múltiples rutas con bash

11

Tengo muy largo export PATH=A:B:C .... ¿Puedo hacer varias líneas para tener una más organizada de la siguiente manera?

export PATH = A:
              B:
              C:
prosseek
fuente

Respuestas:

22

Tu puedes hacer:

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

Cada línea posterior se agrega a la ruta previamente definida. Este es generalmente un buen hábito, ya que evita destruir la ruta existente. Si desea que el nuevo componente tenga prioridad, cambie el orden:

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

Alternativamente, puede hacer:

export PATH=A:\
B:\ 
C

donde \marca una continuación de línea. No he probado este método.

locura del desarrollo
fuente
2
Tenga en cuenta que exportes un comando incorporado, no una palabra clave ni una asignación sintáctica. Entonces, si tiene PATHelementos que contienen espacios en blanco (o caracteres globales), necesita comillas dobles export PATH="$PATH:B". También puedes escribir, PATH=$PATH:Betc. solo necesita exportuna variable una vez, no cada vez que cambia (excepto en algunos shells Bourne muy antiguos), y no necesita las comillas dobles en una asignación.
Gilles 'SO- deja de ser malvado'
1
También PATH+=:Bfunciona para la concatenación de cadenas.
Aryeh Leib Taurog
4

Puede extender líneas en bash usando una barra invertida al final de una línea como esta:

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

Tenga en cuenta que la ausencia de espacios en blanco es importante aquí.

Caleb
fuente
0

Otro enfoque:

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

Tiene el beneficio adicional de no estropear tus niveles de sangría.

Luke Davis
fuente