每次输入时必须重新评估 PS1 字符串

每次输入时必须重新评估 PS1 字符串

如何使 PS1 字符串在每次用户在 shell 提示符下输入 Enter 键时始终重新计算?

我的实际情况:

n=A; PS1="$n"


n=B

提示一直显示A,如何解决?

答案1

您的 $PS1 变量使用 $n 一次,因为 $n 在最初设置 $PS1 时被评估并替换为它的值。这是因为您使用了双引号,在 bash 中,它会计算赋值中双引号字符串中的变量。

如果您希望 $PS1 反映 $n 的当前值,则需要在 $n 两边加上单引号或转义美元符号。

例如:

PS1='$n'

或者

PS1="\$n"

相关内容