a string PS1 deve ser reavaliada cada vez que a entrada entra

a string PS1 deve ser reavaliada cada vez que a entrada entra

Como fazer com que a string PS1 seja sempre reavaliada cada vez que o usuário insere a tecla Enter no prompt do shell?

real no meu:

n=A; PS1="$n"


n=B

O prompt continua mostrando A. Como resolver isso?

Responder1

Sua variável $PS1 está usando $n uma vez porque $n é avaliado e substituído por seu valor quando $PS1 é definido inicialmente. Isso ocorre porque você está usando aspas duplas; no bash, ele avalia as variáveis ​​​​na string entre aspas duplas em uma atribuição.

Se você deseja que seu $PS1 reflita o valor atual de $n, você precisa colocar aspas simples em torno de $n ou escapar do cifrão.

Por exemplo:

PS1='$n'

Ou

PS1="\$n"

informação relacionada