Une basherie rapide

Publié le par greg



Je pense qu'avaler le man de bash n'est pas un truc humain. La personne qui vous soutient l'avoir fait est probablement un droïde (qui sont également les seuls capables de replier un carte michelin dans le bon sens du premier coup). Du coup, on l'avale par petit coup, suivant les intérêts du moment.

En parcourant ladite page de man aujourd'hui je suis tombé sur le chapitre des «braces expansion». Il est dit la chose suivante :

$ echo a{b,c,d}e
abe ace ade

Sur le coup, on se dit «ah, tient, c'est joli». La chose devient vraiment utile quand on lit ça:

$ mkdir /var/www/{plop1,plop2,plop3}
$ touch /var/www/plop{1,2,3}/index.php

(J'ai modifié l'exemple du touch suite à la remarque de ph7, merci à lui).

Merveilleux exemple tiré de la continuation de Advancing in the Bash Shell (merci à Noel pour le lien)

$ ls /usr/{,local/}{,s}bin/jojo

Remarquez les expansions vides et imbriquées.

Bonne journée à tous.
Publicité

Publié dans bash

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article
R
Ça c'est la commande qui fait plaisir au réveil!Bonne découverte!Merci!
Répondre
G
a voir aussi pour les amoureux de bash: http://tldp.org/LDP/abs/html/
Répondre
N
Oups, si bien sûr!
Répondre
N
En cherchant un peu plus d'infos sur ces curly braces, je suis tombé la dessus : http://www.deadman.org/bash2.htmlEt la j'ai découvert $!, qui rends ton exemple plus sympatique:$ mkdir /var/www/plop{1,2,3}$ touch $!/index.phpJe te laisse deviner ce que fait cette commande:$ mkdir /var/www/plop{1,2,3} $ touch $!/$!:t.php Noel
Répondre
G
<br /> « Advancing in the Bash Shell» ... punitit mater suam gravum !<br /> <br /> J'ai cherché $! sur la page sans le trouver, ne parlais tu pas de !$ ?<br /> <br /> <br />
N
Assez utile en effet!Merci Greg!
Répondre