Cum se utilizează Expansiunea Brace în cochilia de bash a lui Linux

May 12, 2025
Linux
FatmAwati Achmad Zaenuri / Shutterstock

Extinderea brațului este o tehnică utilă pentru a genera liste de șiruri care pot fi utilizate în scripturi și aliasuri și pe linia de comandă Linux. Economisiți timp și evitați greșelile introducând mai puțin.

Expansiunea brațului

Înainte de coaja de bash execută o comandă Într-o fereastră terminală sau o linie dintr-un script, verifică dacă trebuie să efectueze orice substituții pe comandă. Numele variabilelor sunt înlocuite de valorile lor, aliasurile sunt înlocuite de comenzile pe care le sună și se efectuează o expansiune. Expansiunea de brățară este o formă de expansiune susținută de bash.

Extinderea de bretele este disponibilă în cochilii moderne, dar ar putea fi lipsită de niște cochilii vechi. Dacă intenționați să utilizați expansiunea Brace în scripturi, asigurați-vă că invocați o cochilie care susține expansiunea de bretele, cum ar fi Bash:

Vom folosi bash pentru exemplele noastre.

Generarea listelor de șiruri ar putea părea mai mult de o noutate decât un beneficiu, dar oferă o anumită funcționalitate care poate economisi timp și apăsări de taste. Adesea, poate oferi o soluție simplă și elegantă la o problemă sau o cerință.

Expansiuni simple

O extindere a brațului este cuprinsă între o pereche de bretele "{}". Poate fi o listă de elemente separate prin virgulă sau o specificator de interval. Spațiile nu sunt permise în interiorul brațelor decât dacă ați înfășurat șirul în ghilimele " " ".

Pentru o listă separată prin virgulă, procesul de expansiune ia fiecare element la rândul său și îl trece la comanda de apel. În acest exemplu, este ecou care pur și simplu imprimă-le în fereastra terminalului . Rețineți că viilele sunt ignorate.

 Echo {una, două, trei, patru} 

O listă poate fi cuvinte sau cifre.

 Echo {1,2,3,4} 

Ordinea elementelor listei este complet arbitrară.

 ECHO (4,2,3,1) 

Un interval de expansiune are un început și un caracter final conectat cu două perioade " .. "Fără spațiu alb. Toate elementele de listă lipsă sunt furnizate automat de expansiune, astfel încât întreaga gamă de la caracterul de pornire la caracterul final să fie creată.

Aceasta va imprima cifrele de la 1 la 10.

 Echo {1...10} 

Numerotarea este arbitrară. Nu trebuie să înceapă la unul.

 Echo {3..12} 

Pot fi specificate intervale, astfel încât să ruleze înapoi. Aceasta va genera o listă de la cinci până la una.

 ECHO {5..1} 

Intervalele pot include numere negative.

 Echo {4 ..- 4} 

După cum am arătat anterior, o serie are un început și un scop caracter . Nu trebuie să fie un număr. Poate fi o scrisoare.

 Echo {Q....} 

Literele pot rula și înapoi.

 Echo {f..o} 

Folosind extinderea de bretele cu bucle

Puteți utiliza expansiunea de brățară cu game în bucle în scripturi.

 pentru i în {3..7}
do
   Echo $ I.
Terminat 

Rangurile de expansiune a brațelor vă permit să utilizați caractere ca variabila buclă.

 pentru i în {m..q}
do
   Echo $ I.
Terminat 

Buclele sunt de obicei folosite în scripturi, dar nu este nimic care să vă împiedice să le introduceți în linia de comandă pentru a vedea ce se va întâmpla.

 pentru i în {3..7}; face echo-i $ i; Terminat 

 pentru i în {m..q}; face echo-i $ i; Terminat 

Concatenarea și cuibarea

Două expansiuni adiacente nu acționează independent unul după celălalt. Ei interopera. Fiecare element din prima expansiune este acționat de fiecare element din a doua expansiune.

 Echo {q....} {1..3} 

Expansiunile pot fi, de asemenea, imbricate. O expansiune imbricată va acționa asupra elementului imediat precedat-o.

 ECHO {PARTE-1, PARTE-2 {A, B, C, D}, Partea 3} 

De asemenea, puteți cuibi extinderile prin crearea unei liste de expansiuni delimitate prin virgulă.

 Echo {{5..0}, {1..5}} 

Preambul și PostScript

Puteți plasa text înainte și după o expansiune de bretele să aibă acest text inclus în rezultatele expansiunii. Textul pus în fața unei expansiuni este numit preambulul, în timp ce textul plasat în spatele unei expansiuni de bretele se numește PostScript.

Această comandă utilizează un preambul.

 Capitolul ecou {1..3} 

Acest exemplu utilizează un postscript:

 Echo {conținut, hârtie, bilbiografie} .md 

Și această comandă utilizează ambele.

 ECHO Capitolul - {1..4} .md 

Extinderea numelor de fișiere și a directoarelor

Așa cum probabil ați ghicit până acum, una dintre principalele utilizări ale expansiunilor de bretele este crearea de nume de fișiere și de director care pot fi transmise altor comenzi. Am folosit-o ecou Ca o modalitate convenabilă de a vedea exact ceea ce se întâmplă atunci când este declanșată o expansiune. Puteți înlocui orice comandă care face nume de fișiere sau nume de directoare ca intrare și utilizează expansiunea de bretele cu aceasta.

La rapid Creați unele fișiere. , utilizare atingere :

 Atingeți fișierul - {1..4} .txt 
 ls * .txt 

Dacă aveți multe fișiere cu același nume de bază, dar diferite extensii de fișiere și doriți să efectuați o operațiune pe un subset al acestora, expansiunile de bretele pot ajuta. Aici, comprimăm un subset de fișiere care au "program" ca nume de bază într-un fișier zip numit "source-code.zip".

Directoarele de dezvoltare conțin o mulțime de fișiere care vor avea același nume de bază ca și programul dvs. principal. De obicei, nu doriți să vă copiați sau să distribuiți fișiere precum fișierele obiect ".o". Aceasta este o modalitate curată de a include doar tipurile de dosare de interes.

 Programul de coduri sursă zip {.C, .h, .css} 

Această comandă va face o copie a unui fișier și va adăuga ".bak" la acesta, făcând o copie de rezervă a fișierului original. Un punct interesant de remarcat este că extinderea de bretele conține o listă separată prin virgulă, dar primul element este gol. Dacă nu am fi inclus virgula, expansiunea nu ar fi avut loc.

 CP Brace / New / Prog-1.c {,. Bak} 
 LS Brace / New / Prog-1.C.bak 

Pentru a efectua o anumită acțiune pe două fișiere în diferite directoare, putem folosi o extindere a brațelor în calea către fișiere.

În acest exemplu, directorul "Brace" conține două subdirectoare, unul numit "nou" și unul numit "vechi". Acestea conțin versiuni diferite ale aceluiași set de fișiere de cod sursă. Vom folosi dig program pentru a vedea diferențele dintre cele două versiuni ale "Prog-1.c".

 Diff Brace / {nou, vechi} /prog-1.c 

Dacă aveți un schelet standard de directoare pe care trebuie să le creați la începutul unui proiect, le puteți crea rapid folosind expansiunea de bretele. În Mkdir. -p. (Părinte) creează orice directoare părinte lipsă când este creat un director de copii.

 Mkdir -p {sursa, construi, om, ajutor {/ pagini, / yelp, / imagini}} 
 copac 

Puteți utiliza expansiunea de bretele cu wget. la Descărcați mai multe fișiere .

În această comandă, vom descărca fișiere din două directoare, numite "Test1" și "Test2". Fiecare director conține două fișiere numite "imagine1" și "imagine2".

 wget https://www.url-of-your-choice.com/test`,2 ●/picture 001,002 ].jpg

Listarea fișierelor vă arată fișierele care au fost preluate și cum wget. Renamează fișiere pentru a evita ciocnirile de nume cu fișierele existente.

 Imaginea LS *. * 

Îmbrățișați brațul

Se pare că expandarea parantezelor este un alt unul dintre mai bine păstrate secrete Linux . Mulți oameni îmi spun că n-au mai auzit de expansiune bretele, în timp ce alții mă informează că este unul dintre trucurile lor preferate linie de comandă.

Dă-o încercare și tocmai s-ar putea găsi drumul în setul de linie de comandă-go-to trucuri.


Linux - Cele mai populare articole

Cum se recuperează fișierele șterse pe Linux cu TestDisk

Linux Nov 18, 2025

FatmAwati Achmad Zaenuri / Shutterstock Ați șters vreodată un fișier și ați regretat instantaneu-o? Ai nevoie de el înapoi și repede! Dar dacă fișier..


Cum să găsiți și să ștergeți simbolurile rupte pe Linux

Linux Nov 12, 2025

FatmAwati Achmad Zaenuri / Shutterstock Legăturile simbolice de pe Linux sunt o caracteristică fantastică, dar ele pot deveni sparte și lăsate îndrepta..


Ce este nou în Ubuntu 21.04 „hirsutism Hippo“

Linux Apr 22, 2025

Noua versiune nouă a Ubuntu 21.04. , Hirsute Hippo, a fost lansat pe 22 aprilie 2021. Este o versiune intermediară a distribuției populare Linux, cu doar nouă luni de spri..


Docker pentru începători: Tot ce trebuie să știți

Linux Jun 15, 2025

Docher creeaza pachete de aplicatii numite containere. Fiecare container oferă un mediu izolat similar unui mașină virtuală (VM). Spre deosebire de conta..


Cele mai bune laptopuri Linux din 2021 pentru dezvoltatori și entuziaști

Linux Sep 27, 2025

Tomeqs / Shutterstock.com. Ce să căutați într-un laptop Linux în 2021 Puteți cumpăra aproape orice laptop și Instalați linux pe ea ..


Cum se adaugă un utilizator la fișierul sudoers din Linux

Linux Oct 30, 2025

În cazul în care o sudo Comanda de pe Linux vă primește un mesaj potrivit căruia un utilizator „nu este în fișierul sudoers”, va trebui să primiți pe lista „sudoers”..


Cum se integrează aplicații și scripturi pe un desktop Linux

Linux Oct 10, 2025

Pe Linux, o aplicație fără fișier desktop nu se va integra cu mediul desktop. Majoritatea aplicațiilor oferă una, dar ocazional va trebui să creați una. Este destul de ușor, trebuie do..


Cum să enumerați serviciile Linux cu SystemCTL

Linux Oct 18, 2025

Computerul dvs. Linux se bazează pe o mulțime de sarcini de fundal numite servicii sau daemons. Pe distribuțiile bazate pe SystemD, aveți comenzi încorporate care vă permit să vedeți ce..


Categorii