Comment utiliser l'expansion de BRACE dans la coquille Bash de Linux

May 12, 2025
Linux
Fatmawati Achmad Zaenuri / Shutterstock
[dix]

L'expansion de BRACE est une technique utile pour générer des listes de chaînes pouvant être utilisées dans des scripts et des alias et sur la ligne de commande Linux. Gagnez du temps et évitez les erreurs en tapant moins.

Expansion de la corde

Avant la coquille bash Exécute une commande Dans une fenêtre de terminal ou une ligne dans un script, il vérifie s'il doit effectuer toutes les substitutions de la commande. Les noms de variables sont remplacés par leurs valeurs, les alias sont remplacés par les commandes qu'ils ont sténographique et toute expansion est effectuée. L'expansion de BRACE est une forme d'expansion soutenue par BASH.

L'expansion de la corde est disponible dans des coquilles modernes, mais il peut être manquant de certains vieux coquilles. Si vous allez utiliser l'expansion de Brace dans les scripts, assurez-vous d'invoquer une coquille qui prend en charge l'expansion de la corde, telle que Bash:

Nous utiliserons Bash pour nos exemples.

La génération de listes de chaînes peut sembler plus nouvelle que possible, mais elle offre certaines fonctionnalités pouvant économiser du temps et des frappes. Souvent, il peut fournir une solution simple et élégante à un problème ou à un besoin.

Expansions simples

Une expansion de la corde est contenue entre une paire d'accolades "{}". Il peut s'agir d'une liste d'articles séparés par des virgules ou d'un spécificateur de plage. Les espaces ne sont pas autorisés à l'intérieur des accolades sauf si vous avez enveloppé la chaîne de guillemets " " . "

Pour une liste séparée par des virgules, le processus d'expansion prend chaque élément à tour de rôle et le transmet à la commande appelante. Dans cet exemple, c'est écho que simplement les imprime dans la fenêtre du terminal . Notez que les virgules sont ignorées.

 echo {un, deux, trois, quatre} 

Une liste peut être des mots ou des chiffres.

 Echo {1,2,3,4} 

L'ordre des éléments de la liste est totalement arbitraire.

 ECHO (4,2,3,1) 

Une plage d'expansion a un démarrage et un caractère final connecté à deux périodes " .. "Sans aucun espace. Tous les éléments de la liste manquante sont fournis automatiquement par l'extension de sorte que l'ensemble de la plage du caractère de démarrage du caractère final est créé.

Cela imprimera les chiffres de 1 à 10.

 Echo {1..10} 

La numérotation est arbitraire. Il n'est pas nécessaire de commencer à un.

 echo {3..12} 

Les gammes peuvent être spécifiées de manière à courir en arrière. Cela générera une liste de cinq à un.

 echo {5..1} 

Les gammes peuvent inclure des nombres négatifs.

 echo {4 ..- 4} 

Comme nous l'avons fait remarquer précédemment, une gamme a un début et une fin personnage . Ce n'est pas obligé d'être un nombre. Cela peut être une lettre.

 echo {q..v} 

Les lettres peuvent également courir en arrière.

 echo {f..a} 

Utilisation de l'expansion de la corde avec des boucles

Vous pouvez utiliser l'expansion de BRACE avec des gammes dans des boucles dans les scripts.

 pour i in {3..7}
faire
   echo $ i
fait 

Les gammes d'expansion de BRACE vous permettent d'utiliser des caractères comme variable de boucle.

 Car i à {m..q}
faire
   echo $ i
fait 

Les boucles sont généralement utilisées dans les scripts, mais rien ne vous empêche de les taper dans la ligne de commande pour voir ce qui va se passer.

 pour i in {3..7}; faire écho $ i; fait 

 Car i à {m..q}; faire écho $ i; fait 

Concaténation et nidification

Deux extensions adjacentes n'agissent pas indépendamment l'une après l'autre. Ils interagissent. Chaque élément de la première expansion est agi par chaque élément de la deuxième expansion.

 echo {q..v} {1..3} 

Les expansions peuvent également être imbriquées. Une expansion imbriquée agira sur l'élément précédant immédiatement.

 Echo {Part-1, Part-2 {A, B, C, D}, Part-3} 

Vous pouvez également nier les extensions en créant une liste des expansions de la plage délimitées par des virgules.

 echo {{5..0}, {1..5}} 

Préambule et PostScript

Vous pouvez placer du texte avant et après une expansion de la corde pour avoir ce texte inclus dans les résultats de l'expansion. Le texte mis en face d'une expansion est appelé le préambule, tandis que le texte placé derrière une expansion de Brace est appelé PostScript.

Cette commande utilise un préambule.

 ECHO CHAPITRE {1..3} 

Cet exemple utilise un PostScript:

 Echo {Contenu, Papier, Bilbiographie} .MD 

Et cette commande utilise les deux.

 ECHO CHAPITRE- {1..4} .MD 

Extension des noms de fichier et des annuaires

Comme vous l'avez probablement deviné maintenant, l'une des principales utilisations des expansions de Brace consiste à créer des noms de fichiers et de répertoires pouvant être transmis à d'autres commandes. Nous utilisons écho comme moyen commode de voir exactement ce qui se passe lorsqu'une expansion est déclenchée. Vous pouvez substituer une commande qui prend des noms de fichiers ou des noms de répertoires comme entrée et utilisez une expansion de Brace avec elle.

À rapidement créer des fichiers , utilisation toucher :

 Fichier tactile- {1..4} .txt 
 ls * .txt 

Si vous avez de nombreux fichiers avec le même nom de base, mais que différentes extensions de fichiers et que vous souhaitez effectuer une opération sur un sous-ensemble d'entre eux, les extensions de BRACE peuvent aider. Ici, nous compressons un sous-ensemble de fichiers qui ont un "programme" comme basename dans un fichier zip appelé "source-code.zip".

Les annuaires de développement contiennent de nombreux fichiers qui auront le même nom de base que votre programme principal. Habituellement, vous ne voulez pas sauvegarder ou distribuer des fichiers comme des fichiers d'objet ".o". Ceci est un moyen net de n'inclure que les types d'intérêt des fichiers.

 Programme de code source zip {.c, .h, .cs} 

Cette commande effectuera une copie d'un fichier et appendez ".bak" à celui-ci, en faisant une copie de sauvegarde du fichier d'origine. Un point intéressant à noter est que l'expansion de Brace contient une liste séparée par des virgules, mais le premier élément est vide. Si nous n'avions pas inclus la virgule, l'expansion n'aurait pas eu lieu.

 CP BRACE / NEW / PROG-1.C {,. BAK} 
 LS BRACE / NEW / PROG-1.C.BAK 

Pour effectuer une action sur deux fichiers dans différents répertoires, nous pouvons utiliser une expansion de BRACE dans le cheminement des fichiers.

Dans cet exemple, le répertoire "BRACE" contient deux sous-répertoires, l'un appelé "nouveau" et celui appelé "vieux". Ils contiennent différentes versions du même ensemble de fichiers de code source. Nous allons utiliser le diffuser Programme de voir les différences entre les deux versions de "PROG-1.C".

 DIFF BRACE / {nouveau, ancien} /prog-1.c 

Si vous avez un squelette standard de répertoires que vous devez créer au début d'un projet, vous pouvez les créer rapidement en utilisant l'expansion de Brace. Les mkdir -p (Parent) Option crée des annuaires parents manquants quand un annuaire enfant est créé.

 MKDIR -P {Source, Construire, Man, Aide {/ Pages, / Yelp, / Images}} 
 Arbre 

Vous pouvez utiliser l'expansion de la corde avec wget à Télécharger plusieurs fichiers .

Dans cette commande, nous allons télécharger des fichiers à partir de deux répertoires, appelés "Test1" et "Test2". Chaque répertoire contient deux fichiers appelés "image1" et "image2".

 wget https://www.url-of-your-choice.com/test (1,2}/picture{001,002}.jpg

Inscription Les fichiers vous indiquent les fichiers extraits et comment wget Renumez les fichiers pour éviter les affrontements de nom avec les fichiers existants.

 LS PICHE *. * 

Embrasser la corset

Il semble que l'expansion de la corde est une autre de Les secrets les mieux gardés de Linux . Beaucoup de gens me disent qu'ils n'ont jamais entendu parler de l'expansion de Brace, tandis que d'autres m'informent que c'est l'une de leurs astuces de ligne de commande préférées.

Donnez-lui un essai et cela pourrait simplement trouver son chemin dans votre ensemble de tours de ligne de commande.


Linux - Most Popular Articles

Comment gérer les serveurs Linux avec l'interface Web du cockpit

Linux Dec 9, 2024

Fatmawati Achmad Zaenuri / Shutterstock [dix] Vous pouvez facilement surveiller et gérer plusieurs ordinateurs Linux avec cockpit, une administration basée..


Les meilleures distributions Linux sans SystemD

Linux Feb 24, 2025

BMJ / ShutterStock.com [dix] Quand les distributions Linux dominantes ont adopté systémique Les dissidents ont fourchu des distributions et ..


5 Distributions Spécialisées Linux avec des fonctionnalités uniques

Linux Jul 20, 2025

La lecture de la longue liste cartoonishly des distros Linux existantes, les saveurs diverses et les pousses off-de pousses hors tout recommencer à brouiller ensemble. Pour remédier à c..


Comment configurer ou désactiver les notifications de mise à jour de la menthe Linux

Linux Jul 9, 2025

Vous avez eu assez de notifications de mise à jour gênantes de Linux Mint? Ou peut-être que vous êtes si inquiet de rester à jour, vous voulez les voir encore plus? De toute façon, a..


Quoi de neuf à Linux Mint 20.2 "Uma"

Linux Jul 8, 2025

Linux Mint, l'un des plus Distributions Linux populaires , a publié la version 20.2, surnommée "UMA". Il est livré avec de nouvelles fonctionnalités, des internaux amélio..


Quoi de neuf dans Gnome 41?

Linux Sep 16, 2025

Environnement de bureau Linux GNOME 41 a été publié le 22 septembre 2021. Il est chaud sur les talons des changements de flux de travail paradigme paradigme de Gnome 40, Gn..


Comment éteindre un PC Ubuntu

Linux Oct 12, 2025

Comme tous les ordinateurs personnels, un PC qui exécute le Ubuntu Le système d'exploitation de bureau doit être éteint maintenant, puis. La fermeture Ubuntu est facile et v..


Pouvez-vous installer Linux sur un M1 d'Apple Silicon Mac?

Linux Nov 12, 2024

Tout le monde n'achète pas un Mac pour exécuter uniquement des macos. La mauvaise nouvelle est que, à compter du novembre 2021, le soutien de Linux natif sur Apple Silicon n'est pas e..


Catégories