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 bold
solo una vez siempre que no restablezca elaudaciacon una tput sgr0
o \e[m
o \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.