Brace expansion
25 novembre 2008, 16:17 Open Source, Shell, Système, Trucs et astuces 25 Novembre 2008, 16:17
Ici, je réponds à une demande de l'aide que j'ai reçue la semaine dernière et que je n'ai pas jusqu'à présent eu le temps de répondre. Je vais demander un conseil sur un script bash qui traite d'une série de répertoires et crée un autre dans / tmp. Sans entrer dans les détails de l'affaire, afin de générer automatiquement des listes ou un tableau de l'assistance annuaire vient dans le corset expansion. Il s'agit d'un mécanisme particulier bash avec qui vous pouvez générer arbitraire des listes de noms de fichiers ou de répertoires. En ce sens, il est semblable à l'expansion du chemin, mais il est lié à l'existence des fichiers et / ou le répertoire en question, tandis que le support expansion de cette limite ne s'applique pas.
La syntaxe de corset expansion est très simple et devrait être inscrite entre parenthèses, chaîne qui sera remplacé dans la même position au sein de la chaîne principale, ce qui génère des variantes que nous servons. Comme toujours, un exemple pratique qui est plus que mille explications:
a (b, c et d)
se développe en:
- abe
- ace
- ade
Le hauban expansion a priorité sur toute autre et doit agrandissement contenant des bretelles d'ouverture et de clôture et au moins un séparateur (virgule).
C'est l'absence de ligne de code pour le script ci-dessus:
/bin/mkdir /tmp/{dir_main,dir_all,dir_tmp_1,dir_tmp_2,dir_tmp_3}
















