PS1 문자열은 입력될 때마다 다시 평가되어야 합니다.

PS1 문자열은 입력될 때마다 다시 평가되어야 합니다.

사용자가 쉘 프롬프트에서 Enter 키를 입력할 때마다 PS1 문자열이 항상 다시 계산되도록 하려면 어떻게 해야 합니까?

내 실제 상황:

n=A; PS1="$n"


n=B

프롬프트에 계속 A가 표시되는데 어떻게 해결하나요?

답변1

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

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

예를 들어:

PS1='$n'

또는

PS1="\$n"

관련 정보