Salut
J ai dans mon bash_aliases mes codes couleur… ca marche tres bien dans le terminal
echo -e $Red"ATTENTION"
ATTENTION est bien en rouge ( Red=’\e[0;31m’)
par contre dans mon script foo.sh je declare $Red
Red=’\e[0;31m’
echo -e $Red"ATTENTION"
et dans un terminal ca me renvoie
-e \e[0;31m]"ATTENTION"
Je dois passer a cote d’un concept important…
pourquoi ca marche dans un sens et pas dans l autre ?
un peu de lumiere svp
merci
Mis à part, qu’il existe quand même depuis des années un outil nommé ‹ tput › qui a justement pour propos de modifier les caractèristiques du terminal, ainsi pour les couleurs, c’est :
meric pour « tput » ca me rajoute les fonction blink reverse et underline … OK c cool
Mais ca ne repond pas trop a mon problème puisque mes variables marchent très bien.
Lorsque mon terminal s ouvre j ai un message en couleur ( qui utilise $BRed"" $BYel"" et $BGre)
echo -e $Red"ATTENTION DANGER"
ou -------------------------------------------------------> ATTENTION DANGER en rouge tout va bien
echo -e « $Red ATTENTION DANGER »
t’as du oublier un espace) —> uniquement DANGER en vert
Mais c’est logique je pense, il ne connait pas la variable RedATTENTION …
Mon problème c est que lorsque j ecris la meme chose dans un script , lors de son exécution ca me renvoie
-e \e[0;31m ATTENTION DANGER ----> tout ca en vert bien sur
J aimerai surtout comprendre ce qu il cloche… la couleur c facultatif
Alors…quel concept me bloque ??
Quelle différence entre l exécution direct dans le terminal et celle depuis un script
#/bin/bash
creer_media() {
echo "EASY2BOOT ... "
sleep 1
cd /iso/_ISO/docs/linux_utils
sudo chmod 777 *
echo "1) FormateR le media avec gparted en fat32"
echo "2) Creer une petite partition (invisible) a la fin du disque pour une meilleur compatibilitée "
echo "gparted demarre..."
sudo gparted &
sleep 1
read -p "3) Lorsque le disque est pret appuyer sur ENTER pour continuer ou Ctrl-C pour annuler " a
echo "cette operation formate le disque selectionne"
echo -e "$Red ATTENTION CHOISI LA LETTRE AVEC PRUDENCE, tu pourrais effacer ton systeme"
sleep 10
sudo ./fmt.sh
}
Ok pour le quotage… j essayerai d’appliquer… merci
Exacte pour le reset ca donerais qqchose de plus joli
echo -e "${Red}ATTENTION CHOISI LA LETTRE AVEC PRUDENCE {Rcol}tu pourrais effacer ton systeme"
oups pardon
pourtant il tourne ???
enfin tournait…
depuis que j ai mis #!/bin/bash en plus comme par hazard…
c est mon premier scripts… avec creation de fonctions… et je galere pas mal j avoue…
+1 pour wiki.bash-hackers
en fait c est juste le script creer_menu.sh … qd je le lance un termial s ouvre et ferme aussitot
Sinon qd je lance INSTALL.sh tout marche nickel… jusqu’au retour
-e \e[0;31m]ATTENTION…
et je me repete la ligne de code
echo -e "$Red ATTENTION CHOISI LA LETTRE AVEC PRUDENCE, tu pourrais effacer ton systeme"
marche dans mon terminal
En gros le shebang(!#) n’est pas une convention du shell, il est interprété par le noyau lors de la manipulation d’un syscall; c’est une convention du noyau, pas du shell.
ces commande dans le terminal renvoie la couleur
Mais a travers un script ca plante
02:53 ryms@debian:~/Téléchargements/applications/my_easy2boot$
sh INSTALL.sh
EASY2BOOT …
FormateR le media avec gparted en fat32
Creer une petite partition (invisible) a la fin du disque pour une meilleur compatibilitée
gparted demarre…
Lorsque le disque est pret appuyer sur ENTER pour continuer ou Ctrl-C pour annuler cette operation formate le disque selectionne
-e \e[0;31m [!]
-e \e[0;31m ATTENTION
-e \e[0;31m ATTENTION CHOISI LA LETTRE AVEC PRUDENCE,\e[0m tu pourrais effacer ton systeme
Voullez vous ajouter vos ISO maintenant ? o/ne
c toujours le meme INSTALL.sh et creer_media avec ses meme 3 lignes dedans
Je comprend plus rien… le ‘-e’ n est pas interpreter comme option par bash ?? c ca ?
j ai beau lire les pages de man ou autre forum j ai l impressionn de passe a coter de qqchose asser gros qd meme… pas facile le terminal qd meme… c etait pareil avec la fonction exec j ai galerer grave mais je lacherai pas le mord !!!
a plus
et si tu lances la commande :bash INSTALL.sh au lieu desh INSTALL.sh?Bash est différent de sh. Tes scripts sont bash mais tu les exécutes en sh.
merci a Hizoka d ubuntu.fr
c etait aussi con que ca… RESOLU