¿Se debe reevaluar la cadena PS1 cada vez que se ingresa una entrada?

¿Se debe reevaluar la cadena PS1 cada vez que se ingresa una entrada?

¿Cómo hacer que la cadena PS1 siempre se reevalúe cada vez que el usuario ingresa la tecla Intro en el símbolo del shell?

real en el mio:

n=A; PS1="$n"


n=B

El mensaje sigue mostrando A. ¿Cómo solucionarlo?

Respuesta1

Su variable $PS1 usa $n una vez porque $n se evalúa y reemplaza con su valor cuando $PS1 se establece inicialmente. Esto se debe a que está utilizando comillas dobles; en bash, evalúa las variables en la cadena entre comillas dobles en una asignación.

Si desea que su $PS1 refleje el valor actual de $n, debe tener comillas simples alrededor de $n o escapar del signo de dólar.

Por ejemplo:

PS1='$n'

O

PS1="\$n"

información relacionada