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 blochează Mac folosind terminalul

Linux Feb 16, 2025

Unul dintre primele reguli ale securității cyberSecuritate este de a bloca întotdeauna computerul înainte de a ieși din acesta. Deși s-ar putea să nu fie cea mai rapidă modalitat..


Cum se utilizează "aici documente" în Bash pe Linux

Linux Mar 31, 2025

FatmAwati Achmad Zaenuri / Shutterstock Named ciudat „aici documente“ vă permit să utilizați de intrare / ieșire de redirecționare în interiorul scri..


Cum să vă deconectați din Mac folosind terminalul

Linux Aug 8, 2025

Apple ușurează deconectarea din Mac cu opțiunea din bara de meniu a desktopului. Dar există și câteva comenzi pe care le puteți folosi pentru a vă deconecta terminalul, după cum..


Ce este nou în GNOME 41?

Linux Sep 16, 2025

Linux Desktop Mediu Gnome. 41 a fost lansat pe 22 septembrie 2021. Venirea fierbinte pe călcâiul lui Gnome 40, schimbarea fluxului de lucru schimbării, Gnome 41 dă ceva de..


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 să găsiți PID -ul unui proces Linux cu PIDOF sau PGREP

Linux Nov 15, 2024

Lucrul cu un proces Linux înseamnă adesea cunoașterea ID -ului procesului sau PID. Este un număr unic dat fiecărui software de rulare. Iată două modalități de a afla ce este. ..


5 caracteristici Ubuntu Linux pe care ar trebui să le utilizați

Linux Dec 6, 2024

Ubuntu Linux este bogat în caracteristici și vine cu o selecție curată de software preinstalat. Totuși, săpați puțin mai adânc și veți găsi câteva funcții pe care ar trebui să le..


Cum să obțineți IP -ul public într -un script Linux Bash

Linux Nov 9, 2024

Veți avea nevoie de adresa dvs. IP externă dacă doriți să vă conectați de la distanță la computer. Găsirea manual este ușoară, dar iată cum să -ți găsești IT dintr -un script L..


Categorii