Respuestas:
La forma más compatible de hacerlo es utilizar tput
para descubrir las secuencias correctas para enviar al terminal:
bold=$(tput bold)
normal=$(tput sgr0)
entonces puedes usar las variables $bold
y $normal
formatear cosas:
echo "this is ${bold}bold${normal} but this isn't"
da
esto es audaz pero esto no es
tput smul
tput
es un gran comando con muchos comandos para muchas tareas diferentes.
motd
archivo. ¿Cómo / dónde definiría las variables $bold
y $normal
en esa instancia?
Para aplicar un estilo en su cadena, puede usar un comando como:
echo -e '\033[1mYOUR_STRING\033[0m'
Explicación:
-e
opción significa que se interpretarán las cadenas escapadas (reducidas)Los posibles enteros son:
[0m
ofrece y esto lo explica bien
\033[0m
3
- cursiva , al menos en konsole
Supongo que bash se está ejecutando en un terminal compatible con vt100 en el que el usuario no desactivó explícitamente la compatibilidad con el formateo.
Primero, active el soporte para caracteres especiales en echo
, usando la -e
opción. Más tarde, use la secuencia de escape ansi ESC[1m
, como:
echo -e "\033[1mSome Text"
Más información sobre las secuencias de escape ansi, por ejemplo aquí: ascii-table.com/ansi-escape-sequences-vt-100.php
echo -e "\033[1mSome Text\033[0m"
contrario, las siguientes líneas de su terminal también estarán en negrita
\033
puede usar \e
comoecho -e "\e[1msome text\e[0m"
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 )