Colorer du texte en mode console.

[Résolu/Fermé]
Signaler
Messages postés
1466
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
20 mai 2021
-
Messages postés
1466
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
20 mai 2021
-
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,



1 réponse

Messages postés
1466
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
20 mai 2021
139
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,