에코 오류 해석 색상

에코 오류 해석 색상

이전 명령의 성공에 따라 터미널 프롬프트의 색상을 변경하고 싶습니다. 현재 다음 스크립트를 통해 이를 달성합니다.

exitstatus()
{
    if [[ $? == 0 ]]; then
        echo -e "\e[38;5;45mबरें"
    else
        echo -e "\e[38;5;211mचूक"
    fi
}
PS1="\[\e[38;5;252m\][\[\e[38;5;214m\]\A \$(exitstatus)\[\e[38;5;252m\]]> \[\e[0m\]"

여기서 문제는 종료 상태 내의 에코가 색상을 올바르게 이스케이프하지 않아 일부 보이지 않는 문자가 남는다는 것입니다. 긴 명령을 입력하면 터미널이 줄을 짧게 자르고 이전 줄 위에 새 줄을 쓰게 됩니다. 여기에 이미지 설명을 입력하세요.

\[\]PS1 변수를 사용하여 약 \e[...m. 그러나 Echo에는 이스케이프 문자로 대괄호가 없으며 색상을 올바르게 이스케이프하는 방법을 찾을 수 없습니다.

관련 정보