
Как сделать так, чтобы строка PS1 всегда переоценивалась каждый раз, когда пользователь вводит клавишу Enter в командной строке?
актуально в моем:
n=A; PS1="$n"
n=B
В подсказке постоянно отображается A. Как решить эту проблему?
решение1
Ваша переменная $PS1 использует $n один раз, потому что $n вычисляется и заменяется своим значением, когда $PS1 изначально устанавливается. Это происходит из-за того, что вы используете двойные кавычки, в bash он вычисляет переменные в строке, заключенной в двойные кавычки, в назначении.
Если вы хотите, чтобы $PS1 отражал текущее значение $n, вам нужно либо заключить $n в одинарные кавычки, либо экранировать знак доллара.
Например:
PS1='$n'
Или
PS1="\$n"