[resolu] Caractere d'echappement (il m'en manque un)

Caractere d'echappement (il m'en manque un) [resolu] - C - Programmation

Marsh Posté le 13-05-2006 à 14:19:14    

Bonjour !
 
Bon j'ai fais une recherche sur le forum, et google, mais j'en reviens toujours au meme point.
Faison simple, je refais la builtin echo pour un shell que j'ai a faire en projet, et j'en suis a gere son option -e qui interprete les caracteres backslashé (quel jolie mot ^^)
Dans le man bash, voici la liste des caracteres a interpreter :
\a \b \c \e \f \n \r \t \v \\ \0nnn \nnn \xHH
j'ai geré tt ca, en mode facile c'est a dire que c'est printf qui s'occupe de l'affichage (le but du proj n'etant pas de refaire echo, mais un shell :p )
bref je ne sais pas ce que doit faire '\e'....
d'apres le man : "\e an escape character"
 
ca m'aide pas trop, sur google je les trouve tous sauf lui. apres quelque tests, j'ai eu l'impression qu'il supprimé le caractere suivant :
> echo -e "salu\et"
salu
 
mais j'ai des reaction bizzard si je le couple avec d'autre caractere speciaux, certain s'interprete, d'autre exemple :
> echo -e "sa\e\tlut"
sa        lut
 
> echo -e "sa\tlut"
sa     lut
 
> echo -e "sa\e\blut"
salut
 
'\b' normalement supprime le caractere precedent (backspace), mais la il est detruit par '\e', ce qui me semble normal, mais pourtant dans le cas juste au dessus, '\t' n'est pas supprimer par '\e' et s'execute.... mais est plus long que '\t' tt seul
 
ou meme :
> echo -e "sa\nlut"
sa
lut
 
> echo -e "sa\e\nlut"
sa
   lut
 
j'ai l'impression qu'il y a un caracter de plus.....
 
bref j'espere avoir été assez clair, donc si vous savez ce que represente '\e' je suis preneur... !


Message édité par StrAbZ le 13-05-2006 à 16:07:24
Reply

Marsh Posté le 13-05-2006 à 14:19:14   

Reply

Marsh Posté le 13-05-2006 à 14:46:05    

Salut tu vas bien ? moi c émy. :pt1cable:

Reply

Marsh Posté le 13-05-2006 à 14:47:08    

je le prend comment...?

Reply

Marsh Posté le 13-05-2006 à 16:06:56    

bon je m'auto resou.. il fallais mettre \033 (valeur octal) du caractere \e dans ma chaine de caractere pour que printf le reconnaisse.  
je n'ai donc pas besoin de le faire moi meme.
 
....

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed