Mettre le texte en couleurrouge dans un scrip

Résolu/Fermé
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 - 30 juin 2012 à 15:29
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 - 19 août 2012 à 12:24
Bonjour,

Je voudrai mettre le texte en couleur rouge sur une ligne dans un script bash dans le terminal.
Je n'arrive pas a mettre le texte de cette ligne en rouge "En pause $temps secondes (Veuillez patienter)"
Je suis sur Debian squeeze 2.6.39.4
Dans mon fichier bash.sh j'ai ceci mais ca fonctionne pas.

temps="20" # Indiquer le temps en secondes
couleurtexterouge="\\033[31m" # Texte de couleur rouge
couleurtexteblanc="echo "\\033[37m"" # Retour a la couleur normal du texte en blanc

echo "\n"
$couleurtexterouge""En pause $temps secondes (Veuillez patienter)" \n
sleep $temps;  
$couleurtexteblanc # Retour a la couleur de texte blanc.
....


Je me mélange les pèdales,
Pouvez vous m'aider avant un exemple simple ?

Merci.

6 réponses

dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
Modifié par dubcek le 30/06/2012 à 16:11
hello
il faut afficher les codes couleurs
temps="20" # Indiquer le temps en secondes 
couleurtexterouge="\\033[31m" # Texte de couleur rouge 
couleurtexteblanc="\\033[27m" # Retour a la couleur normal du texte en blanc 
echo -en "\n${couleurtexterouge}En pause $temps secondes (Veuillez patienter)" 
sleep $temps 
echo -e "$couleurtexteblanc" # Retour a la couleur de texte blanc. 
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
30 juin 2012 à 16:21
bonjour,

j'ai trouvé

temps="20"
echo -e '\E[31;40m'"\033[1mEn pause $temps secondes (Veuillez patienter)\033[0m"



txt : couleur du texte, fond : couleur du fond

# couleur       txt     fond
# Noir          30      40
# Rouge         31      41
# Vert          32      42
# Jaune         33      43
# Bleu          34      44
# Magenta       35      45
# Cyan          36      46
# Blanc         37      47 (plutot gris)
# Defaut        39      49


Merci.
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
Modifié par xunil2003 le 18/08/2012 à 23:08
Bonjour,

Avec ce code bash
#--------------- INSERTION D'UN FICHIER BASH ----------------  
source /home/serveur/Domotique/ordres/mysql/insert.sh 

#---------- Partie munuterie avec coloration du texte pour message d'attente de la minuterie ---------- 
couleurtexterouge="\\033[31m" # Texte de couleur rouge  
couleurtexteblanc="\\033[37m" # Retour a la couleur normal du texte en blanc  
echo "\n${couleurtexterouge}En pause $Total secondes. Ne pas fermer cette fenêtre  (Veuillez patienter)"  
echo "Heure de démarage $heure_on fin dans $(sql7):$(sql8) (Veuillez patienter jusqu'a la fin)" 
echo "$couleurtexteblanc" # Retour a la couleur de texte blanc. 
sleep $Total  
echo ""



quand je tape
sh /home/serveur/Domotique/ordres/mysql/minuterie-f3.sh
le texte est de couleur rouge

Quand je tape
bash /home/serveur/Domotique/ordres/mysql/minuterie-f3.sh
le texte reste blanc, idem quand je tape
./minuterie-f3.sh


Ors dans mon code bash j'utilise "source" qui fonctionne qu'avec bash et non sh.
Comment puis-je faire dans ce cas-là pour colorier mon texte en rouge ?

Merci.
0
Utilisateur anonyme
19 août 2012 à 06:46
salut,

le echo de bash a besoin de l'option -e pour «active[r] l'interpretation des barres contre-obliques d'échappement»,.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
Modifié par xunil2003 le 19/08/2012 à 12:04
Bonjour,

J'ai renomé le fichier "minuterie-f3" puis j'ai ajouter le chemin dans $PATH.

Quand je tape
minuterie-f3

Il m'affiche le texte en couleur blanc avec du code couleur en 1er ligne
\n\033[31mEn pause 4800 secondes. Ne pas fermer cette fenêtre (Veuillez patienter) 
Heure de démarage 11:59:34 fin dans 01:20 (Veuillez patienter jusqu'a la fin)


alors que le code bash est
#--------------- INSERTION D'UN FICHIER BASH ----------------    
source /home/serveur/Domotique/ordres/mysql/insert.sh   

#---------- Partie minuterie avec coloration du texte pour message d'attente de la minuterie ----------   
couleurtexterouge="\\033[31m" # Texte de couleur rouge    
couleurtexteblanc="\\033[37m" # Retour a la couleur normal du texte en blanc    
echo "\n${couleurtexterouge}En pause $Total secondes. Ne pas fermer cette fenêtre  (Veuillez patienter)"    
echo -e "Heure de démarage $heure_on fin dans $(sql7):$(sql8) (Veuillez patienter jusqu'a la fin)"   
echo -e "$couleurtexteblanc" # Retour a la couleur de texte blanc.   
sleep $Total    
echo ""


il devrai m'afficher en rouge
En pause 4800 secondes. Ne pas fermer cette fenêtre (Veuillez patienter)  
Heure de démarage 11:09:29 fin dans 01:20 (Veuillez patienter jusqu'a la fin)


Comment faire ?

Merci.
0
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
19 août 2012 à 12:02
echo -e "\n${couleurtexterouge}En pause $Total secondes. Ne pas fermer cette fenêtre  (Veuillez patienter)"  
0
xunil2003 Messages postés 766 Date d'inscription mercredi 17 novembre 2004 Statut Membre Dernière intervention 29 septembre 2024 14
Modifié par xunil2003 le 19/08/2012 à 12:13
Merci, ca marche nikel maintenant.

#---------- Partie munuterie avec coloration du texte pour message d'attente de la minuterie ---------- 
couleurtexterouge="\\033[31m" # Texte de couleur rouge  
couleurtexteblanc="\\033[37m" # Retour a la couleur normal du texte en blanc  
echo -e "\n${couleurtexterouge}En pause $Total secondes. Ne pas fermer cette fenêtre  (Veuillez patienter)" 
echo "Heure de démarage $heure_on fin dans $(sql7):$(sql8) (Veuillez patienter jusqu'a la fin)" 
echo -e "$couleurtexteblanc" # Retour a la couleur de texte blanc. 
sleep $Total  
echo ""
0
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
Modifié par dubcek le 19/08/2012 à 12:35
autre manière de changer la couleur du texte
tput setaf 1 # en rouge 
tput setaf 0 # en noir
tput setab pour changer le fond
liste des couleurs dans man terminfo
0