사용자가 쉘 프롬프트에서 Enter 키를 입력할 때마다 PS1 문자열이 항상 다시 계산되도록 하려면 어떻게 해야 합니까?
내 실제 상황:
n=A; PS1="$n"
n=B
프롬프트에 계속 A가 표시되는데 어떻게 해결하나요?
답변1
$PS1이 처음 설정될 때 $n이 평가되고 해당 값으로 대체되므로 $PS1 변수는 $n을 한 번 사용합니다. 이는 bash에서 할당 시 큰따옴표로 묶인 문자열의 변수를 평가하는 큰따옴표를 사용했기 때문입니다.
$PS1이 $n의 현재 값을 반영하도록 하려면 $n을 작은따옴표로 묶거나 달러 기호를 이스케이프 처리해야 합니다.
예를 들어:
PS1='$n'
또는
PS1="\$n"