Perdu dans l'echappement de caractère

bonjour,
j’ai le script suivant qui fonctionne et sert a updater ma statusbar, j’utilise dwm.
j’aimerais la coloriser et la je bloque.
le script de départ, simplifié pour donner une idée :

#!/bin/bash bat(){ ac="$(awk 'NR==1 {print +$4}' <(acpi -V))" onl="$(grep "on-line" <(acpi -V))" if [ -z "$onl" ] && [ "$ac" -gt "15" ]; then echo -e "ï $ac%" elif [ -z "$onl" ] && [ "$ac" -le "15" ]; then echo -e "î $ac%" else echo -e "Â AC" fi } xsetroot -name "$(bat)"
le î et  sont en fait des icones de la font terminus que j’ai modifé, mais c’est sans importance je pense.
j’ai tenté de remplacer le

echo -e "î $ac%"

par :

FG='1;31m'
BG='46m'
echo -e " \033[$FG\033[$BG î $ac% \033[0m";

mais alors la du coup je me retrouve avec en sortie le \033 qui a été change en >= (normal c’est le code qui va bien dans ma font…
$FG et $BG prennent bien leur valeur.
j’ai bien essayé de me creuser les méninges mais j’ai bien besoin d’utiliser l’option -e de echo pour pouvoir passer le $ac dans le xsetroot, mais dans le même temps si je le met je me retrouve a échapper des caractères que je voudrais pas si je veux de la couleur.
Il me faudrait “desechapper” des caractères échappés ?

Tu n’as oublié les crochets fermants ?

EDIT :
Tu es sûr que la couleur fonctionne avec ‘echo’ ?
Perso, mes lignes “colorées” sont écrites avec ‘printf’

@Ricardo : non, c’est normal pour les crochets fermants car c’est un formalisme pour utiliser des séquences vt100. l’utilisation de echo ou printf n’a pas d’importance.

Cela dit, chez moi ça marche :confused:

Ceci devrait être plus fonctionnel :

echo -e "$(tput setab 6 setaf 1)test\e[0m"

setaf : pour préciser la couleur du foreground
setab : pour préciser la couleur du background

Tu trouveras les valeurs possibles via man 5 terminfo|less +’/The setaf/setab’