bash echo -e “\ e [1mFOO” de volta ao texto normal

1

Tenho certeza de que estou fazendo algo errado enquanto escrevo um script bash. Graças a outros, consegui usar o eco para tornar o texto em negrito ... mas tudo a partir de então também é ousado. Como eu desligo os comandos echo -e "\e[1mFOO" so future echo print read etc não estão mais em negrito?

Peço desculpas se isso já foi solicitado e respondido usando as mesmas palavras-chave, mas mostrei todas as perguntas / guias sobre como tornar o texto em negrito, mas nenhuma delas mostrou como voltar ao normal.

Aqui está um exemplo caso eu não esteja sendo claro sobre o que estou perguntando

Entrada:

#!/bin/bash
echo "This is normal"
echo -e "\e[1mThis is bold"
echo "Even though there is no '-e' operator, this is still bold but I want it normal"

Saída:

This is normal

This is bold

Even though there is no '-e' operator, this is still bold but I want it back to normal

Muito obrigado!

    
por Ev- 10.08.2017 / 03:44

1 resposta

1

Você precisa redefinir o console para a saída de texto normal depois de alterá-lo para negrito:

#!/bin/bash
echo "This is normal"
echo -e "\e[1mThis is bold"
tput sgr0 #Reset text attributes to normal without clear.
echo "This" #NORMAL

Se tput não funcionar em seu ambiente, você também pode definir o código de cor de volta ao normal:

#!/bin/bash
echo "This is normal"
echo -e "\e[1mThis is bold"
echo -e "\e[0mThis is normal again"
    
por 10.08.2017 / 04:17