Bash PS1 256 색상(굵게 표시)

Bash PS1 256 색상(굵게 표시)

Bash 콘솔에서 사용할 수 있는 모든 색상을 나열하고 싶습니다. 그런 다음 프롬프트를 대담하고 주황색과 같은 색상으로 설정하고 싶습니다. 나는 이것을 사용하여 색상 코드를 나열합니다.

for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Test"; done

그런데 문제는 어떻게 만드느냐이다.용감한색상을 유지하나요?

여기서 굵게 만드는 방법에 대한 조언을 찾았습니다.http://misc.flogisoft.com/bash/tip_colors_and_formatting그런데 굵은 글씨와 256색 중 하나를 조합한 코드는 찾을 수 없었습니다.

답변1

다음 중 하나로 작성할 수 있습니다.

echo -e "\e[1;38;05;${code}m $code: Test"
echo -e "\e[1m\e[38;05;${code}m $code: Test";
echo -e "\e[38;05;${code}m\e[1m $code: Test";
echo -e "\e[38;05;${code};1m $code: Test";
tput bold; tput setaf "$code" # provided the terminfo database is
                              # properly populated

tput bold재설정하지 않으면 한 번만 실행할 수 있습니다 .대담또는 tput sgr0또는 .\e[m\e[0m

답변2

Stephane의 예를 보완하기 위해 다음은 256가지 색상을 모두 나열하는 빠른 셸 함수입니다.

#!/bin/bash
esc=$'\033'
for row in {0..15} ; 
do
    rowtext=
    for col in {0..15}; 
    do
        color=$(( $row * 16 + $col))
        BG="${esc}[48;5;${color}m"
        rowtext=${rowtext}$BG\ 
        if [[ $color -lt 100 ]]; then rowtext=${rowtext}$BG\   ;fi 
        if [[ $color -lt 10 ]]; then rowtext=${rowtext}$BG\   ;fi 
        rowtext=${rowtext}$BG${color}
        rowtext=${rowtext}$BG\ 
    done
    echo "${rowtext}${esc}[00m "
done

이것은 내가 bash해야 하는 zsh 기능의 빠른 "포트"입니다. 나는 (bash에서) 작동하는 것 같거나 적어도 충분히 잘 작동하는 것 같습니다.

색상 코드 번호는 색상 블록에 표시됩니다. 이는 프롬프트나 다른 곳에서 색상을 설정하는 데 사용되는 것입니다.

관련 정보