每次輸入時必須重新評估 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"

相關內容