Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/08/2010, à 13:44

sputnick

Mini challenge sous forme de TP sur le quoting en bash

Salut

On se doit de connaitre la gestion des "quotes" (apostrophes) sur le bout des doigtsl, c'est la base en développement shell wink

Voir http://www.grymoire.com/Unix/Quote.html et http://mywiki.wooledge.org/Quotes Anglais

Petit exercice pour ceux qui le souhaitent : afficher avec le built-in echo ce paragraphe ( tous les caractères doivent s'afficher ) :

hé ! l'été est fini, "c'est la rentrée" ! c'est l'heure d'un petit "tp sur la gestion des quotes en bash"
On peut s'amuser à afficher des \ et des \n ou encore une suite d'anti-slashs : \\\\\\\\\\ c'est amusant n'est-ce pas ? :)
c'est la fête $'\144\165\040\163\154\151\160\077\041'
et qu'en est-il des symboles comme $ % * ? ! &

Pour ceux qui trouvent ça trop dur essayez de faire au moins une ligne.

Dernière modification par sputnick (Le 31/08/2010, à 13:46)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#2 Le 31/08/2010, à 13:46

wido

Re : Mini challenge sous forme de TP sur le quoting en bash

tu peux pas donner le résultat de ce que ça doit donner, parce que là je n'ai rien compris lol

Hors ligne

#3 Le 31/08/2010, à 13:47

sputnick

Re : Mini challenge sous forme de TP sur le quoting en bash

C'est le résultat de ce que ça doit donner justement ! smile


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#4 Le 31/08/2010, à 14:04

Totor

Re : Mini challenge sous forme de TP sur le quoting en bash

j'ai le droit de jouer ? big_smile


-- Lucid Lynx --

Hors ligne

#5 Le 31/08/2010, à 14:07

sputnick

Re : Mini challenge sous forme de TP sur le quoting en bash

oui mais attend un peu pour donner une réponse ? comme tu veut :d


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#6 Le 31/08/2010, à 14:12

Totor

Re : Mini challenge sous forme de TP sur le quoting en bash

nop, c pas rigolo, j'ai préféré te l'envoyer sur gmail wink


-- Lucid Lynx --

Hors ligne

#7 Le 31/08/2010, à 14:17

sputnick

Re : Mini challenge sous forme de TP sur le quoting en bash

On me signale dans mon oreillette que Totor a déja trouvé smile


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#8 Le 31/08/2010, à 14:22

sputnick

Re : Mini challenge sous forme de TP sur le quoting en bash

man ascii

peut servir pour comprendre 

echo $'fête \144\165\040\163\154\151\160\077\041'

wink


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#9 Le 31/08/2010, à 14:38

kamui57

Re : Mini challenge sous forme de TP sur le quoting en bash

j'ai pas pu m'empêcher de jouer... faudrait une balise "spoiler" pour ces cas là

preuve :

15:37:21 stephanie@Middle-Earth:~ 39$ bash echoo.sh 
hé ! l'été est fini, "c'est la rentrée" ! c'est l'heure d'un petit "tp sur la gestion des quotes en bash"
On peut s'amuser à afficher des \ et des \n ou encore une suite d'anti-slashs : \\\\\\\\\\ c'est amusant n'est-ce pas ? :)
c'est la fête $'\144\165\040\163\154\151\160\077\041'
et qu'en est-il des symboles comme $ % * ? ! &
15:37:35 stephanie@Middle-Earth:~ 40$

edit : voici le code, je pensais juste ne pas le mettre directement comme celui qui l'a envoyé par mail.

echo "hé ! l'été est fini, \"c'est la rentrée\" ! c'est l'heure d'un petit \"tp sur la gestion des quotes en bash\"
On peut s'amuser à afficher des \ et des \n ou encore une suite d'anti-slashs :"' \\\\\\\\\\ '"c'est amusant n'est-ce pas ? :)
c'est la fête $'\144\165\040\163\154\151\160\077\041'
et qu'en est-il des symboles comme $ % * ? ! &";

edit : enlèvement d'un backslash en trop tongue

Dernière modification par kamui57 (Le 31/08/2010, à 15:26)


Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console

Hors ligne

#10 Le 31/08/2010, à 14:46

sputnick

Re : Mini challenge sous forme de TP sur le quoting en bash

@kamui57, je proposait d'afficher avec la commande builtin echo, pas avec un script tongue
Et on ne connait même pas ton code.

Dernière modification par sputnick (Le 31/08/2010, à 14:47)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#11 Le 31/08/2010, à 14:54

ehmicky

Re : Mini challenge sous forme de TP sur le quoting en bash

La solution full-backslash big_smile

$ echo -e hé\ \!\ l\'été\ est\ fini,\ \"c\'est\ la\ rentrée\"\ \!\ c\'est\ l\'heure\ d\'un\ petit\ \"tp\ sur\ la\ gestion\ des\ quotes\ en\ bash\"\\\nOn\ peut\ s\'amuser\ à\ afficher\ des\ \\\ et\ des\ \\\\n\ ou\ encore\ une\ suite\ d\'anti-slashs\ :\ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ c\'est\ amusant\ n\'est-ce\ pas\ ?\ :\)\\\nc\'est\ la\ fête\ \$\'\\144\\165\\\\040\\163\\154\\151\\160\\\\077\\\\041\'\\net\ qu\'en\ est-il\ des\ symboles\ comme \$ \% \* \? \!\ \&

Bon maintenant je vais voir en alternant les ', " et \, mais je suis sûr qu'il doit y avoir une solution alternative sinon !

Edit : solution avec simples guillemets :

$ echo -e 'hé ! l'\''été est fini, "c'\''est la rentrée" ! c'\''est l'\''heure d'\''un petit "tp sur la gestion des quotes en bash"'\\n'On peut s'\''amuser à afficher des \ et des \\n ou encore une suite d'\''anti-slashs : \\\\\\\\\\\\\\\\\\\ c'\''est amusant n'\''est-ce pas ? :)'\\n'c'\''est la fête $'\''\144\165\\040\163\154\151\160\\077\\041'\'\\n'et qu'\''en est-il des symboles comme $ % * ? ! &'

Edit2 : sinon, en prenant les règles à la lettre, et en trichant légèrement big_smile, on peut mettre ton texte dans un fichier nommé "texte" et faire :

$ < texte xargs -0 echo -n

Edit3 : Ca y est ! Enfin trouvé une solution satisfaisante :

xargs -0 echo -n <<'YOUPLABOUM'
hé ! l'été est fini, "c'est la rentrée" ! c'est l'heure d'un petit "tp sur la gestion des quotes en bash"
On peut s'amuser à afficher des \ et des \n ou encore une suite d'anti-slashs : \\\\\\\\\\ c'est amusant n'est-ce pas ? :)
c'est la fête $'\144\165\040\163\154\151\160\077\041'
et qu'en est-il des symboles comme $ % * ? ! &
YOUPLABOUM

Dernière modification par ehmicky (Le 31/08/2010, à 15:16)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#12 Le 31/08/2010, à 15:17

kamui57

Re : Mini challenge sous forme de TP sur le quoting en bash

j'ai rajouté mon code, avec du retard car internet lague à fond en ce moment hmm.


Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console

Hors ligne

#13 Le 31/08/2010, à 15:55

sputnick

Re : Mini challenge sous forme de TP sur le quoting en bash

Très propre kamui57 smile

@ehmicky, intéressant, mais tu ne suis pas l'intitulé, à savoir utiliser echo ( seul commande autorisée ).

Toujours est-il, ton exemple est un peu tordu, tu pouvait faire comme ça :

cat<<'YOUPLA'
hé ! l'été est fini, "c'est la rentrée" ! c'est l'heure d'un petit "tp sur la gestion des quotes en bash"
On peut s'amuser à afficher des \ et des \n ou encore une suite d'anti-slashs : \\\\\\\\\\ c'est amusant n'est-ce pas ? :)
c'est la fête $'\144\165\040\163\154\151\160\077\041'
et qu'en est-il des symboles comme $ % * ? ! &"
YOUPLA

Dernière modification par sputnick (Le 31/08/2010, à 16:02)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#14 Le 31/08/2010, à 19:36

ehmicky

Re : Mini challenge sous forme de TP sur le quoting en bash

J'utilise le builtin echo dans les quatre solutions proposées (même si c'est couplé avec xargs dans deux cas, mais les deux premiers c'est la seule commande utilisée) ! Et bon xargs, c'est juste une demi-commande ici, enfin je veux dire, cela sert juste à remplir les arguments de echo, mais c'est bien echo qui imprime ce poème geek ^^
C'est d'ailleurs pour ça que j'ai pas utilisé cat sur le Here document mais le tordu xargs -0 echo -n big_smile

En tout cas, je plebiscite ce genre de mini-challenges ! Je me sens pas à la hauteur pour en proposer, mais n'hésitez pas à le faire ^^

Dernière modification par ehmicky (Le 31/08/2010, à 19:40)


Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?

Hors ligne

#15 Le 31/08/2010, à 19:54

Totor

Re : Mini challenge sous forme de TP sur le quoting en bash

ehmicky a écrit :

En tout cas, je plebiscite ce genre de mini-challenges ! Je me sens pas à la hauteur pour en proposer, mais n'hésitez pas à le faire ^^

rien ne t'empêche de le faire... wink
mais il faut être capable de donner la solution big_smile


-- Lucid Lynx --

Hors ligne

#16 Le 01/09/2010, à 11:13

Josepe36

Re : Mini challenge sous forme de TP sur le quoting en bash

bonjour

je te tombe là par hazard et je dois dire que j'adore tongue

bon ben je crois que tu as donné la solution sputnick, il nous faut convertir le texte en octal et le reconstruire comme tu l'as fait sur l'exemple ?

ben je m'abonne j'ai tant a apprendre wink


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#17 Le 01/09/2010, à 12:03

sputnick

Re : Mini challenge sous forme de TP sur le quoting en bash

Ben non, pour apprendre, mieux vaut utiliser uniquement les quotes simples ou doubles, c'est le but de l’exercice.
bien sur mon here-doc fonctionne tout comme si on changeait les caractères gênants en octal, mais c'est pas le but ici. les caractères octals qui sont présents dans le paragraphe ne sont là que pour le défi de les afficher sans les évaluer. On doit afficher scrupuleusement les 4 lignes tels quelles s'affichent sur le forum.


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#18 Le 01/09/2010, à 12:21

Josepe36

Re : Mini challenge sous forme de TP sur le quoting en bash

ok ok bon ben j vais me casse la tete sur cet exercice alors tongue

c'est quand les résultats ?


Développeur distribution Hybryde
www.hybryde.org

Hors ligne

#19 Le 01/09/2010, à 12:51

FRUiT

Re : Mini challenge sous forme de TP sur le quoting en bash

On dit pas plutôt "caractères octaux" ?


Neon Suite by FRUiT (kde4.6) [url]http://[Merci de relire les règles]/yzm7cee[/url]
"Pour la carotte, le lapin est la plus parfaite incarnation du mal" (R. Sheckley)
clean

Hors ligne

#20 Le 01/09/2010, à 13:22

sputnick

Re : Mini challenge sous forme de TP sur le quoting en bash

je voulais dire caractères en octal mais tu a surement raison, à vérifier wink


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#21 Le 01/09/2010, à 14:51

wido

Re : Mini challenge sous forme de TP sur le quoting en bash

un octal, des octaux, c'est tout simple.
http://fr.wiktionary.org/wiki/octaux

Hors ligne

#22 Le 01/09/2010, à 15:19

sputnick

Re : Mini challenge sous forme de TP sur le quoting en bash

Josepe36 a écrit :

c'est quand les résultats ?

Il n'y a pas un résultat particulier, mais plusieurs solutions possibles, on pourra parler de la plus propre si on le souhaite.
Pour moi, kamui57 a donné la meilleure solution, cad utilisant les concaténations, et en alternant simples et doubles quotes et avec élégance et concision ; pas de mode bourrin à base d'anti-slashs wink

Dernière modification par sputnick (Le 01/09/2010, à 15:19)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne