Получить цвета в оболочке bash [дубликат]

¿Por qué no simplemente:

sed 's/name//' file

?

-1
02.03.2018, 07:44
3 ответа

La forma portátil de hacer esto es usartput:

ql_gray=$(tput setaf 7)
ql_magenta=$(tput setaf 5)
ql_cyan=$(tput setaf 6)
ql_orange=$(tput setaf 3)
ql_green=$(tput setaf 2)
ql_no_color=$(tput sgr0)

Esto tendrá en cuenta la configuración actual del terminal. La lista oficial de colores está documentada en la página de manual terminfo(5), pero es posible que deba experimentar; por ejemplo, en la lista anterior, 7 es oficialmente blanco (pero termina en gris claro en la mayoría de los terminales ), y 3 es oficialmente amarillo (pero termina en amarillo oscuro o naranja en la mayoría de los terminales ). Puede deshabilitar los colores configurando TERM=dumbantes de llamar a tput.

3
28.04.2021, 23:49

Necesita obtener bash para interpretar las secuencias de escape en las cadenas allí. Puede usar cualquiera de:

echo -e "${ql_gray}..."
printf "%b\n" "${ql_gray}..."

O evaluarlos al configurar las variables:

ql_gray=$'\033[1;30m'

Entonces cualquiera de:

echo "${ql_gray}..."
printf "%s\n" "${ql_gray}..."
2
28.04.2021, 23:49

En lugar de usar echo, use echo -e, usar ese indicador reconocerá los caracteres de control.

printftambién podría funcionar,aparentemente es una cosa POSIX

1
28.04.2021, 23:49

Теги

Похожие вопросы