bash PS1 256 colores con negrita

bash PS1 256 colores con negrita

Quiero enumerar todos los colores que puedo usar en la consola bash. Y después quiero configurar mi mensaje para que sea de color negrita y naranja. Estoy usando esto para enumerar códigos de colores para mí:

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

Pero la pregunta es cómo hacerlo.atrevidoy mantener los colores?

Busqué algunos consejos sobre cómo ponerlo en negrita aquí:http://misc.flogisoft.com/bash/tip_colors_and_formattingpero no pude encontrar ningún código que combine negrita y uno de 256 colores.

Respuesta1

Puedes escribirlo como cualquiera de esos:

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

Puede ejecutar tput boldsolo una vez siempre que no restablezca elaudaciacon una tput sgr0o \e[mo \e[0m.

Respuesta2

Para complementar el ejemplo de Stéphane, aquí hay una función de shell rápida para enumerar los 256 colores:

#!/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

Este es un "puerto" rápido de una función zsh que tengo que atacar. Parece que trabajo (en bash), o al menos bastante bien.

El número del código de color se muestra en el bloque de color. Esto es lo que usarías en tu mensaje o en otro lugar para configurar el color.

información relacionada