Jak używać nawiasów w Linuksa Bash Shell

May 12, 2025
Dystrybucja
Fatmawati Achmad Zaenuri / Shutterstock

Rozszerzenie brace jest przydatną techniką generowania list ciągów, które mogą być używane w skryptach i aliasach oraz w wierszu poleceń Linux. Oszczędzaj czas i unikaj błędów, wpisując mniej.

Rozbudowa brace

Przed skorupą bash Wykonuje polecenie W oknie końcowym lub linii w skrypcie sprawdza, czy wymaga wykonania żadnych podstawień na polecenie. Nazwy zmiennych są zastępowane przez ich wartości, aliasy są zastępowane przez polecenia, które są skrótami, a każda ekspansja jest wykonywana. Rozszerzenie brace to jedna forma ekspansji obsługiwanej przez bash.

Ekspansja brace jest dostępna w nowoczesnych skorupach, ale może to zaginąć od niektórych starych muszli. Jeśli zamierzasz używać rozbudowy klamry w skryptach, upewnij się, że wywołasz powłokę, która obsługuje rozbudowę brace, takie jak bash:

Będziemy używać bash dla naszych przykładów.

Wygenerowania listy łańcuchów może wydawać się bardziej nowością niż korzyści, ale oferuje pewną funkcjonalność, która może zaoszczędzić czas i naciśnięcia klawiszy. Często może zapewnić proste i eleganckie rozwiązanie problemu lub wymagania.

Proste rozszerzenia

Rozszerzanie brace jest zawarte między parą szelki "{}". Może to być lista elementów oddzielonych przecinkami lub specyfikatorem zakresu. Przestrzenie nie są dozwolone w szelkach, chyba że owinęłeś ciąg w cudzysłów " " . "

W przypadku listy rozdzielonych przecinkami proces rozszerzeń bierze każdy element z kolei i przechodzi go do polecenia wywołania. W tym przykładzie jest Echo to prosto Wydrukuje je w oknie terminala . Zauważ, że przecinki są ignorowane.

 Echo {jeden, dwa, trzy, cztery} 

Lista może być słowami lub cyframi.

 Echo {1,2,3,4} 

Kolejność elementów listy jest całkowicie arbitralna.

 Echo (4,2,3,1) 

Zakres ekspansji ma początek i znak końcowy połączony z dwoma okresami " .. "Bez jakichkolwiek białych znaków. Wszystkie brakujące elementy listy są dostarczane automatycznie przez rozszerzenie, dzięki czemu tworzona jest cały zakres od znaku początku do znaku końcowego.

Spowoduje to wydrukowanie cyfr od 1 do 10.

 Echo {1..10} 

Numeracja jest arbitralna. Nie musi zaczynać się od jednego.

 Echo {3..12} 

Zakresy można określić, aby działały do ​​tyłu. Spowoduje to wygenerowanie listy od pięciu do jednego.

 Echo {5..1} 

Zakresy mogą obejmować liczby ujemne.

 Echo {4 ..- 4} 

Jak wcześniej wskazaliśmy, zasięg ma początek i koniec postać . Nie musi być liczbą. Może to być list.

 Echo {Q..v} 

Litery mogą również prowadzić do tyłu.

 Echo {f..a} 

Korzystanie z rozbudowy brace z pętlami

Możesz użyć rozbudowy brace z zakresami pętli w skryptach.

 dla I w {3..7}
robić
   echo $ I.
zrobione 

Zakresy rozszerzeń brace umożliwiają używanie znaków jako zmiennej pętli.

 dla I w {m..q}
robić
   echo $ I.
zrobione 

Pętle są zwykle używane w skryptach, ale nie ma nic do powstrzymania cię przed wpisując je do wiersza poleceń, aby zobaczyć, co się stanie.

 dla I w {3..7}; Czy echo $ I; zrobione 

 dla I w {m..q}; Czy echo $ I; zrobione 

Concatenating and Nesting.

Dwa sąsiednie ekspansje nie działają niezależnie po drugim. Interopery. Każdy element w pierwszej ekspansji jest działany przez każdy element w drugiej ekspansji.

 Echo {Q..v} {1..3} 

Eksporia mogą być również zagnieżdżone. Zagnieżdżona ekspansja będzie działać na elemencie natychmiast poprzedzający go.

 Echo {część-1, część-2 {A, B, C, D}, część-3} 

Możesz także gniazdować rozszerzenia poprzez utworzenie rozszerzonej przecinku listy rozszerzeń zakresu.

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

Preambuła i PostScript.

Możesz umieścić tekst przed i po rozbudowie klamry, aby ten tekst był zawarty w wynikach ekspansji. Tekst umieszczony przed rozszerzeniem nazywa się preambułą, podczas gdy tekst umieszczony za ekspansją brace jest nazywany PostScript.

To polecenie używa preambuły.

 Echo rozdział {1..3} 

Ten przykład używa PostScript:

 Echo {Zawartość, papier, bilbiografia} .md 

A to polecenie używa obu.

 Echo Rozdział - {1..4} .md 

Rozszerzanie nazw plików i katalogi

Jak już prawdopodobnie odgadłeś, jednym z głównych zastosowań ekspansji brace jest tworzenie nazw plików i katalogów, które można przekazać do innych poleceń. Używamy Echo Jako wygodny sposób, aby zobaczyć dokładnie, co się dzieje, gdy wyzwala się ekspansję. Możesz zastąpić dowolne polecenie, które podejmuje nazwy plików lub katalogów jako wejściowe i użyj rozbudowy brace.

Za szybko Utwórz niektóre pliki , posługiwać się dotykać :

 Dotknij pliku- {1..4} .txt 
 LS * .txt 

Jeśli masz wiele plików o tej samej nazwie podstawowej, ale różnych rozszerzeń plików i chcesz wykonać operację na ich podzbiorze, rozszerzenia brace może pomóc. Tutaj kompresujemy podzbiór plików, które mają "program" jako podstawę do pliku ZIP o nazwie "source-code.zip".

Katalogi rozwój zawierają wiele plików, które będą miały tę samą podstawę jako główny program. Zwykle nie chcesz kopii zapasowej ani rozpowszechniania plików takich jak pliki obiektów ".o". Jest to schludny sposób, aby uwzględnić tylko interesujące typy plików.

 Program kodu źródłowego ZIP {.C, .H, .CSS} 

To polecenie spowoduje kopię pliku i dołącz do niego ".bak", dzięki czemu kopia kopii zapasowej oryginalnego pliku. Ciekawym punktem, aby pamiętać jest, że ekspansja brace zawiera listę rozdzieloną przecinkami, ale pierwszy element jest pusty. Gdybyśmy nie uwzględnili przecinek, ekspansja nie miałaby miejsca.

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

Aby wykonać kilka akcji na dwóch plikach w różnych katalogach, możemy użyć rozbudowy w ścieżce do plików.

W tym przykładzie katalog "Brace" zawiera dwa podkatalogi, jeden o nazwie "Nowy" i jeden o nazwie "Stary". Zawierają różne wersje tego samego zestawu plików kodu źródłowego. Użyjemy diff. program, aby zobaczyć różnice między dwiema wersjami "PROG-1.C".

 Diff Brace / {New, Old} /Prog-1.C 

Jeśli masz standardowy szkielet katalogów, które musisz stworzyć na początku projektu, możesz szybko utworzyć je za pomocą rozbudowy brace. ten mkdir. -P Opcja (rodzic) Tworzy wszelkie brakujące katalogi nadrzędne kiedy tworzony jest katalog dziecko.

 Mkdir -p {Źródło, Buduj, człowiek, Pomoc {/ Strony, / Yelp, / obrazy}} 
 Drzewo 

Możesz użyć rozbudowy brace wget. do Pobierz wiele plików .

W tym poleceniu zamierzamy pobrać pliki z dwóch katalogów, zwanych "Test1" i "Test2". Każdy katalog posiada dwa pliki o nazwie "Picture1" i "Zdjęcie2".

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

Listing Pliki pokazuje pobrane pliki i jak wget. Zmień nazwę plików, aby uniknąć nazwy starań z istniejącymi plikami.

 LS Picture *. * 

Ogarnąć klamrę

Wydaje się, że ekspansja klamry jest kolejna Najlepsze tajemnice Linux . Wielu ludzi mówi mi, że nigdy nie słyszeli o rozszerzeniu klamry, podczas gdy inni informują mnie, że to jedna z ich ulubionych sztuczek wiersza poleceń.

Daj mu spróbuj, a może znaleźć drogę do twojego zestawu linii poleceń przejść do sztuczek.


Dystrybucja - Najpopularniejsze artykuły

Jak przetwarzać linię plików według linii w skrypcie bash Linux

Dystrybucja Feb 3, 2025

Fatmawati Achmad Zaenuri / Shutterstock Łatwo jest odczytać zawartość linii tekstu tekstowego Linux linią linią w skrypcie powłoki - tak długo, jak r..


Jak zdobyć graficzny menedżer urządzeń dla Linuksa

Dystrybucja Mar 17, 2025

Afryka Studio / Shutterstock.com Istnieje nieskończona Linux narzędzi wiersza polecenia, które pokazują szczegóły sprzętowych komputera . Har..


Jakie są Bash Słowniki w Linuksie i jak z nich korzystać?

Dystrybucja Jun 16, 2025

Fatmawati Achmad Zaenuri / Shutterstock.com słowniki bash daje mapy hash i tablic asocjacyjnych w skryptach powłoki systemu Linux. Pokażemy Ci, jak korzys..


Docker dla początkujących: Wszystko, co musisz wiedzieć

Dystrybucja Jun 15, 2025

Doker Tworzy zapakowane aplikacje nazywane pojemnikami. Każdy kontener zapewnia na białym tle środowisko podobne do maszyna wirtualna (VM). W przeciwieńs..


Jak odwrócić jądro w Linuksie

Dystrybucja Sep 30, 2025

Fatmawati Achmad Zaenuri / Shutterstock.com Jeśli Twój komputer Linux nagle ma problemy po aktualizacji do systemu, możliwe jest Linux Kernel. ..


Jak uruchomić na Linuksie Android Apps

Dystrybucja Oct 19, 2025

CicheBits / Shutterstock.com. Czy kiedykolwiek chciałeś uruchomić aplikację na Androida na Linuksie, ale nie chciałem bałaganu z mostami debugowania, śr..


Jak spłukać DNS w Linux

Dystrybucja Nov 14, 2024

Czy Twoje wrażenia z przeglądania Internetu jest powolne na urządzeniu Linux, czy też witryny, które odwiedzasz, czy zupełnie nieudana witryna? Omówmy płukanie pamięci podręcznej DNS ..


Jak znaleźć PID procesu Linux z PIDOF lub PGREP

Dystrybucja Nov 15, 2024

Praca z procesem Linuksa często oznacza znajomość jego identyfikatora procesu lub PID. Jest to unikalny numer podany każdemu elementowi działającego oprogramowania. Oto dwa sposoby, aby d..


Kategorie