Colorer du texte en mode console.

Résolu
Bonjour,

J'ai une écris une fonction en bash qui affiche les interfaces réseaux de la machine. Si l'interface est up, son nom apparait en vert, sinon en rouge . Ce scipt est appelé par /etc/inittab et remplace donc le classique espace de connexion de la machine.


Quand je teste la fonction via un accès ssh, ça fonctionne. En revanche, si je tente depuis vncviewer :


Les couleurs ne sont pas affichées....

function display_interfaces_config
{

local current_primary=$(get_default_interface_name)
local light_red='\e[91m'
local light_green='\e[92m'

INTERFACES=($(/bin/bash -c "(cd /sys/class/net && \ls)| sed -r '/^(lo|tun)/d'"))
for interface in "${INTERFACES[@]}"
do
interfaces+=("$interface")
interfaces_name+=("[$interface]")
interface_up=$(ip link show "$interface" |grep "UP")

if [ -n "$interface_up" ]
then
interfaces_colour+=("$light_green")
else
interfaces_colour+=("$light_red")
fi
done
}

while (( "$count" < "${#INTERFACES[@]}" ))
do

conf="| ${curPrimaN}${interfaces_colour[$aN]}%${conf2sizeaN}s\e[m | ${curPrimbN}${interfaces_colour[$bN]}%${conf2sizebN}s\e[m|\n"

a="${interfaces_name[$aN]}"
b="${interfaces_name[$bN]}"

printf "$conf" "$a" "$b"


Une idée ?? Merci d'avance :)

A plus tard,



--
N'oubliez pas de marquez votre post comme résolut lorsque vous avez eu les réponses à vos questions...
Au royaume des aveugles, les borgnes sont rois.

1 réponse

  1. Bon, a prioris, cela vient du code couleur utilisé qui n'est pas compatible avec le terminal.

    ça fonctionne avec :

    local light_red='\e[33m'
    local light_green='\e[32m'


    A plus,