Les accolades ne sont pas des motifs génériques. Consultez la documentation des extensions bash : les accolades sont développées très tôt dans le processus et les modèles génériques sont développés à la dernière étape¹.
Dans un premier temps , la commande se compose de deux mots echo
, *{1..12}
. Après le développement des accolades, la commande contient 13 mots: echo
, *1
, *2
, ..., *12
. Ensuite, les modèles génériques sont développés. *1
s'étend à la liste des noms de fichiers se terminant par 1
, qui comprend non seulement file1
mais aussi file11
(qui est ensuite trié dans l'ordre lexicographique). De même se *2
dilate à file12
et file2
(dans cet ordre). Ainsi , vous obtenez echo
, file1
, file11
, file12
, file2
, puis les autres jokers qui correspondent à un seul fichier: file3
, file4
, ..., file12
.
¹ Avant-dernier, si vous suivez la description du manuel, mais la «suppression des devis» n'est pas vraiment une chose - les devis sont analysés plus tôt que le processus d'expansion.
Gilles 'SO- arrête d'être méchant'
la source