Aller au contenu

Bash - Message avec code couleur

·
code bash
Jérémy Norgol
Auteur
Jérémy Norgol
Consultant ingénieur Linux Devops

Dans les scripts Linux un peu de couleur, ça fait du bien, Voir d’un coup d’oeil où il y a une erreur c’est top pour diagnostiquer rapidement. Alors hop' voici une fonction toute faite qui vous ajoute un encart de status.

Fonctions
#

Mise en forme textuel avec couleur - Type bannière
#

Dépendance Necessite la fonction Write-Color du point précédent.
function Write-Banner()
{
    local code="$1"
    shift
    local message="$@"

    case "$code" in
        ok|OK)
            fg_color='\e[1m[\e[32m OK \e[0m\e[1m]\e[0m - '
        ;;
        VALID|valid)
            fg_color='\e[1m[\e[32mVALID\e[0m\e[1m]\e[0m - '
        ;;
        ko|KO)
            fg_color='\e[1m[\e[31m KO \e[0m\e[1m]\e[0m - '
        ;;
        ERROR|error)
            fg_color='\e[1m[\e[31mERRO\e[0m\e[1m]\e[0m - '
        ;;
        WARNINGwarning|warn|WARN)
            fg_color='\e[1m[\e[33mWARN\e[0me[1m]\e[0m - '
        ;;
        DEBUG|debug)
            fg_color='\e[1m[\e[35mDEBUG\e[0m\e[1m]\e[0m - '
        ;;
        INFO|info)
            fg_color='\e[1m[\e[94mINFO\e[0m\e[1m]\e[0m - '
        ;;
        "")
                printf >&2 "%s\n" \
                        "do:" \
                        "$0 (OK|KO|WARNING|DEBUG|INFO) - Votre message";
        ;;
        *)
            fg_color=''
        ;;
    esac
    echo -e "${fg_color}$message"
}

Cas d’utilisation
#

Voici un bout de code bonus qui détail l’execution d’une commande donnée avec l’affichage du retour si c’est OK ou KO en récupérant cette fameuse fonction de code coloré sous forme de bannière:

function RUN_CMD ()
{
    Write-Banner "INFO" "Commande executée:"
    echo "$@"
    echo '----------'
    "$@"
    RETURN_CODE=$?
    echo '----------'
    #printf '%s\n' "$@"
    [ $RETURN_CODE -eq 0 ] && Write-Banner "OK" "Commande exécutée avec succès (${RETURN_CODE})" || Write-Banner "DEBUG" "Code retour: ${RETURN_CODE}" && exit 1
}

RUN_CMD tar -czvf ./dmesg.tar.gz /var/log/dmesg*

Voici le résultat:

Capture d'exemple Bannière

Version pour Powershell:

Version pour Python:

Articles connexes

Tailspin – Pour y voir plus clair dans vos logs
logs code lien externe
Powershell - Message avec code couleur
code powershell
Python - Message avec code couleur
code python