입력이 입력될 때마다 PS1 문자열을 재평가해야 합니다.

입력이 입력될 때마다 PS1 문자열을 재평가해야 합니다.

사용자가 쉘 프롬프트에서 Enter 키를 입력할 때마다 PS1 문자열이 항상 재평가되도록 만드는 방법은 무엇입니까?

내 실제 :

n=A; PS1="$n"


n=B

프롬프트에 계속 A가 표시됩니다. 어떻게 해결하나요?

답변1

$PS1이 처음 설정될 때 $n이 평가되고 해당 값으로 대체되므로 $PS1 변수는 $n을 한 번 사용합니다. 이는 bash에서 큰따옴표를 사용하기 때문에 할당에서 큰따옴표로 묶인 문자열의 변수를 평가하기 때문입니다.

$PS1이 $n의 현재 값을 반영하도록 하려면 $n 주위에 작은따옴표를 사용하거나 달러 기호를 이스케이프 처리해야 합니다.

예를 들어:

PS1='$n'

또는

PS1="\$n"

관련 정보