необходимо ли повторно оценивать строку PS1 каждый раз при вводе данных

необходимо ли повторно оценивать строку PS1 каждый раз при вводе данных

Как сделать так, чтобы строка PS1 всегда переоценивалась каждый раз, когда пользователь вводит клавишу Enter в командной строке?

актуально в моем:

n=A; PS1="$n"


n=B

В подсказке постоянно отображается A. Как решить эту проблему?

решение1

Ваша переменная $PS1 использует $n один раз, потому что $n вычисляется и заменяется своим значением, когда $PS1 изначально устанавливается. Это происходит из-за того, что вы используете двойные кавычки, в bash он вычисляет переменные в строке, заключенной в двойные кавычки, в назначении.

Если вы хотите, чтобы $PS1 отражал текущее значение $n, вам нужно либо заключить $n в одинарные кавычки, либо экранировать знак доллара.

Например:

PS1='$n'

Или

PS1="\$n"

Связанный контент