2011-09-09 25 views
18

puedo configurar una variable de entorno en el indicador bash de la siguiente manera:cómo insertar una variable de entorno en el indicador bash

export PS1="[\[email protected]\H/$FOO \W]\$ " 

El mensaje no cambia cuando cambio la variable de entorno: $FOO porque la variable $FOO no es interpretado

Puedo solucionarlo haciendo lo siguiente, exportando PS1 nuevamente. Pero me gustaría poder hacerlo en una línea:

[[email protected] ]$ echo $FOO 
foo 
[[email protected] ]$ export PS1="[$FOO]$ " 
[foo]$ export FOO=bla 
[bla]$ 

¿Se puede hacer esto en una línea?

Respuesta

31

es necesario agregar barra invertida para conseguir que no se evalúa en el momento de FOO assigment pero durante la evaluación de la PS1, también lo hacen:

export PS1="[\$FOO]$ " 

en lugar de:

export PS1="[$FOO]$ " 

Nota del \ antes del $FOO.

+0

¿Puede usted tener carácter se escapa en la variable '' '$ FOO''' sin embargo? – Plamen

+1

o ponga el indicador entre comillas simples: 'export PS1 = '[$ FOO] $'' – Gary

15

intente configurar la variable PROMPT_COMMAND:

prompt() { 
    PS1="[$FOO]$ " 
} 

PROMPT_COMMAND=prompt 

De http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x264.html:

Bash proporciona una variable de entorno llamada PROMPT_COMMAND. El contenido de esta variable se ejecuta como un comando Bash regular justo antes de que Bash muestre un aviso.

Cuestiones relacionadas