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 do odzyskiwania skasowanych plików w systemie Linux z TestDisk

Dystrybucja Nov 18, 2025

Fatmawati Achmad Zaenuri / Shutterstock Czy kiedykolwiek usunęłeś plik i natychmiast go żałował? Potrzebujesz go z powrotem i szybko! Ale co jeśli plik ..


W jaki sposób zmusić użytkowników do zmiany haseł w systemie Linux

Dystrybucja Nov 4, 2025

Ilya Titchev / Shutterstock Hasła są zwornikiem bezpieczeństwa konta. Pokażemy Ci, jak resetowanie haseł ustawionych okresów ważności hasła, i wymusi�..


Jak korzystać DB wyszukiwarce SQLite w systemie Linux

Dystrybucja Dec 16, 2025

Fatmawati Achmad Zaenuri / Shutterstock DB Browser SQLite pozwala przeglądać i edytować bazy danych SQLite w systemie Linux. Można projektować, t..


Jak używać ograniczonej powłoki do ograniczenia tego, co użytkownik Linuksa może zrobić

Dystrybucja Mar 25, 2026

Fatmawati Achmad Zaenuri / Shutterstock Ograniczona skorupa ogranicza, co konto użytkownika może zrobić na Linuksie. Ograniczony użytkownik nie może zmi..


Co nowego w Debianie 11 „Bullseye”

Dystrybucja Jul 22, 2025

Debian , Propogenitor wielu innych dystrybucji Linuksa, wydano 11 dostępnych w etapie testowym. Czy ważysz cnoty uaktualnienia, czy jesteś po prostu ciekawy zmian? Dziś spoj..


5 specjalistyczne Dystrybucje Linux z unikalnych cech

Dystrybucja Jul 20, 2025

Odczyt przez kreskówną długą listę istniejących dystrybucji Linuksa, seryjnych smaków i off-shoots of off-shoots All zaczynają rozmyć razem. Aby zaradzić, że zebraliśmy kilka d..


Jak zainstalować Linuksa na M1 MAC z jabłkowym silikonem

Dystrybucja Nov 11, 2025

Native Linux Wsparcie dla nowej architektury opartej na ramieniu Apple nie jest jeszcze gotowe, ale możesz uruchomić Linuksa na M1. , M1 PRO lub M1 Max za pomocą maszyn..


Jak wymienić usługi Linux za pomocą SystemCtl

Dystrybucja Oct 18, 2025

Twój komputer Linux opiera się na wielu zadaniach w tle o nazwie Services lub Demons. W dystrybucjach opartych na systemd masz wbudowane polecenia, które pozwalają zobaczyć, które usługi..


Kategorie