#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
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
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 !
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 ?
-- 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
-- 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é
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'
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
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
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
$ 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 , 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 .
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
@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
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
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...
mais il faut être capable de donner la solution
-- 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
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
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
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
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
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
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