Jak používat Brace expanze v Linuxu Bash Shell

May 12, 2025
Linux
FATMAWATI ACHMAD ZAENURI / Shutterstock

Rozšíření ortézy je užitečná technika pro generování seznamů řetězců, které lze použít ve skriptech a aliasech a na příkazovém řádku Linuxu. Ušetřit čas a vyhnout se chybám zadáním méně.

Rozšíření ortézy

Před bash shell provede příkaz V okně terminálu nebo řádku ve skriptu zkontroluje, zda je třeba provést libovolné substituce na příkazu. Názvy proměnných jsou nahrazeny jejich hodnotami, aliasy jsou nahrazeny příkazy, které jsou zkráceny, a jakákoliv expanze se provádí. Rozšíření ortézy je jedna forma expanze podporované bash.

Rozšíření ortézy je k dispozici v moderních skořápkách, ale může mi chybět z několika starých skořápek. Pokud se chystáte použít rozšiřování ortézy ve skriptech, ujistěte se, že vyvoláte shell, který podporuje rozšiřování oboru, jako je Bash:

Pro naše příklady používáme bash.

Generování seznamů řetězců se mohou zdát více z novinky než výhody, ale nabízí určitou funkčnost, která může ušetřit čas a stisknutí kláves. Často může poskytnout jednoduché a elegantní řešení problému nebo požadavku.

Jednoduché rozšíření

Mezi dvojicí rovnátka "{}" je obsažena roztažnost čeledí. Může to být seznam čárkami oddělených předmětů nebo specifikátor rozsahu. Prostory nejsou povoleny uvnitř rovniných, pokud jste zabalili řetězec v uvozovkách " " . "

Pro seznam odděleného čárkami, proces expanze vezme každý prvek na otočení a předává jej příkazu volání. V tomto příkladu je to echo to jednoduše Vytiskne je do okna terminálu . Všimněte si, že čárky jsou ignorovány.

 echo {jeden, dva, tři, čtyři} 

Seznam může být slov nebo číslice.

 echo {1,2,3,4} 

Objednávka prvků seznamu je zcela libovolný.

 ECHO (4,2,3,1) 

Rozsah expanze má start a koncový charakter spojený se dvěma obdobími " .. "Bez jakéhokoliv mezery. Všechny chybějící prvky seznamu jsou poskytovány automaticky expanzí, takže je vytvořen celý rozsah od počátečního znaku ke konci znaku.

To bude tisknout číslice od 1 do 10.

 echo {1..10} 

Číslování je libovolné. Nemusí to začít na jednom.

 echo {3..12} 

Rozsahy mohou být specifikovány tak, aby běžely dozadu. To bude generovat seznam od pěti dolů na jeden.

 echo {5..1} 

Rozsahy mohou zahrnovat negativní čísla.

 echo {4 ..- 4} 

Jak jsme dříve ukázali, rozsah má začátek a konec charakter . Nemusí to být číslo. Může to být dopis.

 echo {q..v} 

Dopisy mohou také běžet dozadu.

 echo {f..a} 

Použití roztažnosti čeledí s smyčkami

Můžete použít rozšiřování ortézy s rozsahy v smyčkách ve skriptech.

 Pro i v {3..7}
dělat
   echo $ I.
provedeno 

Rozšiřovací rozsahy oborů umožňují používat znaky jako proměnná smyčka.

 Pro i v {m..q}
dělat
   echo $ I.
provedeno 

Smyčky se obvykle používají ve skriptech, ale není nic, co by vám mohlo zastavit, abys je zadali do příkazového řádku, abyste viděli, co se stane.

 pro i v {3..7}; echo $ i; provedeno 

 pro i v {m..q}; dělat echo $ i; provedeno 

Zřetězení a Hnízdění

Dvě sousední rozšíření nepůsobí nezávisle jeden po druhém. Oni spolupracovat. Každý prvek v první rozšíření je působeno každý prvek v druhé rozšíření.

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

Expanze mohou být také vnořené. Nested expanze bude působit na prvek bezprostředně předcházející jej.

 echo {díl 1, část-2 {a, b, c, d}, část-3} 

Můžete také vnořit expanze tím, že vytvoří seznam oddělený čárkami rozsah rozšíření.

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

Preambule a Postscript

Můžete umístit text před a po rozšíření rozpěry ke zrušení tohoto textu zahrnuty ve výsledcích expanzi. Text postaveni před rozšířením se nazývá preambule, zatímco textový umístěn za rozšíření ortéza se nazývá postscript.

Tento příkaz používá preambuli.

 echo kapitola {1..3} 

Tento příklad používá doušku:

 echo {obsah, papír, bilbiography} .md 

A tento příkaz používá obojí.

 echo kapitola- {1..4} .md 

Rozšiřování názvy souborů a adresářů

Jak jste asi uhodli teď, jeden z hlavních využití výztuhou expanze je vytvořit názvy souborů a adresářů, které mohou být předány do jiných příkazů. Byli jsme s použitím echo jako pohodlný způsob, jak přesně zjistit, co se stane, když je expanzní spuštěno. Můžete nahradit libovolný příkaz, který trvá názvy souborů nebo názvy adresářů jako vstup a využití ortézy expanzi s ní.

rychle vytvořit nějaké soubory použijte dotek :

 dotykové file {1..4} .txt 
 ls * .txt 

Pokud máte mnoho souborů se stejným základním názvem, ale různých přípon souborů a chcete provést operaci na podmnožině z nich, může rovnátka rozšíření pomoci. Zde se budeme kompresi podmnožinu souborů, které mají „program“, jako basename do souboru ZIP s názvem „source-code.zip.“

Vývojové adresáře obsahují velké množství souborů, které budou mít stejný názvem jako svého hlavního programu. Obvykle nechcete zálohovat nebo distribuovat soubory jako „.o“ objektových souborů. Jedná se o elegantní způsob, jak obsahovat pouze typy souborů zájmu.

 zip zdrojový kód programu {.c, .h, CSS} 

Tento příkaz vytvořit kopii souboru a připojit „.bak“ k němu, takže záložní kopii původního souboru. Zajímavý je třeba uvést, že expanze výztuha obsahuje čárkami oddělený, ale první prvek je prázdný. Kdybychom není zahrnuta čárku, expanze by se neuskutečnily.

 cp výztuha / nové / prog-1.C {,. Bak} 
 ls výztuha / nové / prog-1.c.bak 

Chcete-li provést nějakou akci na dva soubory v různých adresářích, můžeme použít expanzi rovnátka v cestě k souborům.

V tomto příkladu je „výztuha“ adresář obsahuje dva podadresáře, jeden s názvem „nové“ a jeden s názvem „staré“. Obsahují různé verze stejné sady souborů se zdrojovým kódem. Budeme používat diff naprogramovat vidět rozdíly mezi oběma verzemi „prog-1.c.“

 RP výztuha / {nový, starý} /prog-1.c 

Pokud máte standardní kostru adresářů, které potřebujete k vytvoření na začátku projektu, můžete je rychle vytvořit pomocí expanze závorek. . \ T mkdir -p. Možnost (rodič) Vytváří všechny chybějící nadřazené adresáře když se vytvoří adresář dítě.

 mkdir -p {zdroj, sestavení, člověk, nápovědy {/ stránky, / Yelp, / obrazy}} 
 strom 

Můžete použít ortéza expanzi wget na stahovat více souborů .

V tomto příkazu, budeme stahovat soubory ze dvou adresářů, nazvaný „test1“ a „test2“. Každý adresář obsahuje dva soubory s názvem „Picture1“ a „obrázek2.“

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

Výpis souborů vám ukáže soubory, které byly získány a jak wget přejmenuje soubory, aby se zabránilo název střetům s existujícími soubory.

 ls obrázku *. * 

Obejmout Brace

Zdá se, že expanze ortéza je další z Linux je nejlépe střeženým tajemstvím . Mnoho lidí mi říct, že jsem nikdy neslyšel o rozšíření ortéza, zatímco jiní mne informoval, že je to jedna z jejich oblíbených příkazového řádku triků.

Zkusit to a že to může najít svou cestu do vašeho souboru příkazového řádku go-to triků.


Linux - Nejoblíbenější články

Jak aktualizaci Arch Linux

Linux Jul 30, 2025

Projekt Ubuntu Přijde čas aktualizovat systém Linuxu ARCH? Ať už jste na čistém oblouku nebo distro bázi oblouku Manjaro. A GARUDA LINUX, ..


Co je nového v distribuci Debian 11 „Bullseye“

Linux Jul 22, 2025

Debian Je předek mnoho jiných linuxových distribucí, učinil vydání 11 k dispozici v testovací fázi. Jste vážení ctnosti modernizaci, nebo jste jen zvědaví o změn�..


Jak aktualizaci Ubuntu Linux

Linux Aug 27, 2025

Tomqs / Shutterstock.com. Potřebujete nejnovější a největší v softwaru Ubuntu? Nemusíte být Linux profesionál. Čtěte dál a zjistit, jak aktualiz..


Co je nového v GNOME 41?

Linux Sep 16, 2025

Linux desktop prostředí GNOME 41 byl propuštěn 22. září 2021. Příchod hot na paty změn workflow paradigma-posunující GNOME 40 je, nemá GNOME 41 dodat něco látky..


Jak spustit Android aplikace na Linuxu

Linux Oct 19, 2025

quietbits / Shutterstock.com Někdy chtěli spustit aplikaci pro Android na Linux, ale nechtěl, aby si s ladění mosty, vývojová prostředí, nebo sideload..


Co je nového v Ubuntu 21.10 ‚rozpustilý Indri‘

Linux Oct 14, 2025

Kanonický Ubuntu 21.10 „rozpustilý Indri“ byl vydaný dne 14. října 2021. Je vybaven GNOME 40 , Nové jádro, a aktualizované apli..


Jak nainstalovat Linux na M1 Mac S Apple křemíku

Linux Nov 11, 2025

Native Linux podpora pro novou architekturu APPLES ARRIGHTURE není dosud připravena, ale můžete spustit Linux na M1. , M1 Pro, nebo M1 Max pomocí a virtuální stroj ..


7 chyb, které noví uživatelé Linuxu dělají (a jak se jim vyhnout)

Linux Nov 11, 2025

Učení Linuxu může být frustrující zážitek, kde se všechno malá věc cítí jako bitva. Vyhýbání se těmto běžným chybám usnadní a přijetí Linuxu bude mnohem snazší a mén..


Kategorie