Respostas:
A maneira mais compatível de fazer isso é usar tput
para descobrir as seqüências corretas a serem enviadas ao terminal:
bold=$(tput bold)
normal=$(tput sgr0)
então você pode usar as variáveis $bold
e $normal
formatar as coisas:
echo "this is ${bold}bold${normal} but this isn't"
dá
isso é ousado, mas isso não é
tput smul
tput
é um ótimo comando com muitos comandos para muitas tarefas diferentes.
motd
arquivo. Como / onde eu definiria as variáveis $bold
e $normal
nessa instância?
Para aplicar um estilo à sua string, você pode usar um comando como:
echo -e '\033[1mYOUR_STRING\033[0m'
Explicação:
-e
opção significa que as seqüências de escape (barra invertida) serão interpretadasOs possíveis números inteiros são:
[0m
ofertas e isso explica-lo bem
\033[0m
3
- itálico , pelo menos em konsole
Presumo que o bash esteja sendo executado em um terminal compatível com vt100 no qual o usuário não desativou explicitamente o suporte para formatação.
Primeiro, ative o suporte para caracteres especiais echo
usando a -e
opção Mais tarde, use a sequência de escape ansi ESC[1m
, como:
echo -e "\033[1mSome Text"
Mais sobre sequências de escape ansi, por exemplo, aqui: ascii-table.com/ansi-escape-sequences-vt-100.php
echo -e "\033[1mSome Text\033[0m"
outra as seguintes linhas de seu terminal estará em negrito também
\033
que você pode usar \e
comoecho -e "\e[1msome text\e[0m"
Em teoria assim:
# 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.
Mas, na prática, pode ser interpretado como cor de "alta intensidade".
(fonte: http://unstableme.blogspot.com/2008/01/ansi-escape-sequences-for-writing-text.html )