Si vous pouvez vous permettre de taper autant de virgules que le nombre de smooth
commandes que vous souhaitez, vous pouvez profiter de l'extension d'accolade séparée par des virgules du shell.
TL; DR
La ligne de commande entière pour votre exemple de cas serait:
generate | eval 'smooth |'{,,,,} plot
Remarque:
- ajoutez ou supprimez des virgules si vous voulez plus ou moins de répétitions de
smooth |
- il n'y a pas
|
avant plot
parce que cela est inclus dans la dernière smooth |
chaîne produite par l'extension Brace
- vous pouvez également fournir des arguments
smooth
, tant que vous pouvez les inclure correctement dans la partie fixe citée qui précède l'accolade ouverte; rappelez-vous en tout cas que vous les fournirez à toutes les répétitions de la commande
Comment ça fonctionne
L'extension d'accolade séparée par des virgules vous permet de produire dynamiquement des chaînes, chacune composée d'une partie fixe spécifiée et des parties variables spécifiées. Il produit autant de chaînes qu'il y a de parties variables indiquées, comme a{b,c,d}
produit ab ac ad
.
La petite astuce ici est que si vous faites plutôt une liste de parties variables vides , c'est-à-dire avec seulement des virgules à l'intérieur des accolades, l'extension d'accolade ne produira que des copies de la partie fixe. Par exemple:
smooth{,,,,}
produira:
smooth smooth smooth smooth smooth
Notez que 4 virgules produisent 5 smooth
chaînes. Voilà comment fonctionne cette extension d'accolade: elle produit des chaînes autant de virgules plus une.
Bien sûr, dans votre cas, vous avez également besoin d'un |
séparateur smooth
, alors ajoutez-le simplement dans la partie fixe mais veillez à le citer correctement pour que la coque ne l' interprète pas immédiatement. C'est:
'smooth|'{,,,,}
produira:
'smooth|' 'smooth|' 'smooth|' 'smooth|' 'smooth|'
Veillez à toujours placer la partie fixe immédiatement à côté de l'entretoise ouverte, c'est-à-dire sans espace entre le '
et le {
.
(Notez également que pour former la partie fixe, vous pouvez également utiliser des guillemets doubles au lieu de guillemets simples, si vous devez développer des variables de shell dans la partie fixe. Prenez juste soin de l'échappement supplémentaire qui est requis lorsque certains caractères spéciaux du shell se produisent dans une chaîne entre guillemets).
À ce stade, vous avez besoin d'un eval
appliqué à cette chaîne afin que le shell l'interprète enfin comme la commande en pipeline qu'il est censé être.
Ainsi, pour résumer le tout, la ligne de commande entière pour votre exemple de cas serait:
generate | eval 'smooth |'{,,,,} plot