Colorer du texte en mode console.

Résolu/Fermé
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 - 3 juil. 2018 à 15:27
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 - 3 juil. 2018 à 16:34
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,



A voir également:

1 réponse

Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
3 juil. 2018 à 16:34
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,
0