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