sheet - ¿Cómo sale uno en negrita en Bash?
vim cheat sheet (4)
En teoría, así:
# BOLD
$ echo -e "/033[1mThis is a BOLD line/033[0m"
This is a BOLD line
# Using tput
tput bold
echo "This" #BOLD
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL
# UNDERLINE
$ echo -e "/033[4mThis is a underlined line./033[0m"
This is a underlined line.
Pero en la práctica, puede interpretarse como color de "alta intensidad".
(fuente: http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html )
Estoy escribiendo un script Bash que imprime algo de texto en la pantalla:
echo "Some Text"
¿Puedo formatear el texto? Me gustaría que sea audaz.
La forma más compatible de hacerlo es usar tput
para descubrir las secuencias correctas para enviar a la terminal:
bold=$(tput bold)
normal=$(tput sgr0)
luego puede usar las variables $bold
y $normal
para formatear cosas:
echo "this is ${bold}bold${normal} but this isn''t"
da
esto es audaz pero esto no es
Para aplicar un estilo a su cadena, puede usar un comando como:
echo -e ''/033[1mYOUR_STRING/033[0m''
Explicación:
- echo -e - La opción
-e
significa que las cadenas escapadas (backslashed) serán interpretadas - / 033 - secuencia escapada representa el comienzo / finalización del estilo
- minúscula m - indica el final de la secuencia
- 1 - Atributo Negrita (ver abajo para más información)
- [0m : restablece todos los atributos, colores, formateo, etc.
Los enteros posibles son:
- 0 - Estilo normal
- 1 - Audaz
- 2 - Dim
- 4 - Subrayado
- 5 - Parpadeando
- 7 - Reverso
- 8 - Invisible
Supongo que bash se está ejecutando en un terminal compatible con vt100 en el que el usuario no desactivó explícitamente el soporte para el formateo.
Primero, active el soporte para caracteres especiales en echo
, usando la opción -e
. Más tarde, use la secuencia de escape ansi ESC[1m
, como:
echo -e "/033[1mSome Text"
Más sobre las secuencias de escape ansi por ejemplo aquí: ascii-table.com/ansi-escape-sequences-vt-100.php