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 utilizează browserul DB pentru SQLite pe Linux

Linux Dec 16, 2025

FatmAwati Achmad Zaenuri / Shutterstock Browser db pentru sqlite Vă permite să vizualizați și să editați baze de date SQLite pe Linux. Puteți p..


Cum se procesează o linie de fișier pe linie într-un script de bash Linux

Linux Feb 3, 2026

FatmAwati Achmad Zaenuri / Shutterstock Este destul de ușor să citiți conținutul unei linii de fișier text Linux pe linie într-un script de coajă - at..


Cum se obține un manager de dispozitive grafice pentru Linux

Linux Mar 17, 2026

Africa Studio / Shutterstock.com Există nesfârșite Linux Command-Line Utilities care arată detaliile hardware-ului computerului . Hardinfo afiș..


Cum se utilizează Strace pentru a monitoriza apelurile sistemului Linux

Linux Jun 23, 2025

FatmAwati Achmad Zaenuri / Shutterstock.com Programele Linux solicită nucleu să facă niște lucruri pentru ei. În Strace Comanda de..


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 6 cele mai bune districte Linux Linux

Linux Jul 27, 2025

3DMI / Shutterstock.com. Dacă computerul Windows sau Mac este vechi și se luptă pentru a ține pasul, instalarea Linux poate da o leasing proaspăt de viaț..


Ce este „root“ pe Linux?

Linux Jul 7, 2025

FatmAwati Achmad Zaenuri / Shutterstock.com Utilizatorul rădăcină este cea mai puternică entitate din universul Linux, cu puteri nelimitate, pentru mai b..


Cum să spălați DNS în Linux

Linux Nov 14, 2025

Experiența dvs. de navigare pe internet este lentă pe dispozitivul dvs. Linux sau site -urile web pe care le vizitați pe site -ul depășit sau pe site -ul greșit? Să discutăm despre cur�..


Categorii