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

Jun 16, 2025
Dystrybucja
Fatmawati Achmad Zaenuri / Shutterstock.com

słowniki bash daje mapy hash i tablic asocjacyjnych w skryptach powłoki systemu Linux. Pokażemy Ci, jak korzystać z tych potężnych i użytecznych struktur danych we własnych skryptów powłoki systemu Linux.

Róża przez inne nazwy

Formalna nazwa dla słowników jest Tablice asocjacyjne. Są one nazywane również tabele i mapy hash hash. Są struktura danych, która działa podobnie do zwykłego tablicy, ale o znacznej różnicy.

Tablicą jest zbiorem wartości danych przechowywanych w jednej strukturze danych. Aby uzyskać dostęp do którejkolwiek z wartości danych, które są znane jako elementy tablicy, trzeba znać swoją pozycję w tablicy. Pozycja elementu tablicy w tablicy jest znany jako wskaźnik, więc tego rodzaju są znane jako macierze indeksowanych tablic. Są one najczęściej stosowanym rodzajem tablic.

Jednak oni mają wadę. Jak uzyskać dostęp do elementu tablicy jeśli nie znasz swoją pozycję na liście? Trzeba uruchomić przez wszystkie elementy w tablicy, badania, aby zobaczyć, czy wartość w tym miejscu jest ten, który szukasz.

Tablice asocjacyjne przezwyciężyć ten problem. Nie używają liczb całkowitych do jednoznacznej identyfikacji elementów tablicy. Wykorzystują one unikalne słowa znane jako słów kluczowych. Można pobrać wartość do elementu tablicy używając jego słowa kluczowego, niezależnie od tego, gdzie jest umieszczony w tablicy. Przy określonym układzie, liczby całkowite reprezentującymi położenia w tablicy są w porządku rosnącym. Słowa kluczowe w tablicy asocjacyjnej może być w dowolnej kolejności.

można sprawdzić wartość w tablicy asocjacyjnej, wyszukując z jego słów kluczowych. Patrząc w górę słowo i zdobycie jego mimetyków wartości związanej patrząc słowo w słowniku i znalezienie jego znaczenie. Dlatego asocjacyjne tablice są nazywane słownikami.

Bash 4.0 lub nowsza

Tablice asocjacyjne są obsługiwane w Bash powłoki w wersji 4.0 lub wyższej. Jeśli używasz bieżącej dystrybucji Linuksa, powinno być w porządku. Aby sprawdzić wersję bash, użyj polecenia:

 atakujących version 

Urządzenie wykorzystywane do badań tego artykułu ma Bash 5.1.4 zainstalowany, więc jesteśmy dobrze iść.

Podstawowe zasady

Aby utworzyć tablicę asocjacyjną w wierszu poleceń terminala lub w skrypcie, używamy polecenia DECLARE bash. ten -A (Asocjacyjne) opcja nakazuje Bash, że będzie to tablica asocjacyjna, a nie tablica indeksowana.

 stwierdzenie -A akronimy 

To tworzy tablicę asocjacyjną nazwie „skróty”.

Aby umieścić kilka danych na naszej tablicy, musimy zapewnić słowa kluczowe i wartości. Możemy to zrobić za pomocą tego formatu:

 tablicy nazwa [klucz] = wartość 

Dodajmy kilka elementów tablicy:

 akronimy [ACK] = Potwierdzenie 
 akronimy [BGP] = "Border Gateway Protocol" 
 akronimy [CIDR] = "Bezklasowa wewnątrz domeny trasy" 
 akronimy [DHCP] = "protokół dynamicznej konfiguracji hosta" 
 akronimy [EOF] = "Koniec ramki" 

Polecenia te określają pięć elementów macierzy. Zauważ, że wartości są pakowane w cudzysłowie, jeśli istnieją przestrzenie w wartości. Nasze słowa kluczowe zostały wpisane w kolejności alfabetycznej, ale mogą być wprowadzane w dowolnej kolejności. Słowa kluczowe muszą być unikalne. Jeśli próbujesz utworzyć dwa wpisy z tego samego słowa kluczowego, drugą wartość, aby wprowadzić zastąpi pierwszy. Nadal będziesz mieć tylko jeden wpis z danego słowa kluczowego, a zostanie on powiązany z drugiej wartości, które sami dodali.

Aby pobrać wartości z tablicy, używamy polecenia w tym formacie:

 $ {Tablica nazwa [klucz]} 

Możemy użyć echo wysłać wyjście do okna terminala:

 echa $ {akronimy [ACK]} 
 echa $ {akronimy [DHCP]} 

Korzystanie Loops

Macierze nadają się bardzo dobrze być używane w pętlach. Obiekty stowarzyszone nie są wyjątkiem. Pętle zapewniają skuteczne sposoby wywołania sekwencji działań bez powtarzalnych sekcji kodu. Zanim spojrzymy na pętle, jest skuteczny sposób na zadeklarowanie tablic.

Tworzymy tabliczki za pomocą ogłosić polecenie (to samo -A Opcja jak wcześniej), ale zapewniamy słowa kluczowe i wartości jako lista w wierszu poleceń.

 Deklaruj-Kraje = ([Alb] = Albania [BHR] = Bahrajn [CMR] = Kamerun [DNK] = Dania [EGY] = Egipt) 

Nazwa tablicy jest "kraje" i jest podłączony do listy wartości przez znak równy " =. . " Lista wartości jest zawinana w nawiasy " () "A każde słowo kluczowe jest zawinięte w wsporniki" [] ". Zauważ, że nie ma przecinków oddzielających wartości. Jeśli masz ciąg wartości, który zawiera spacje, musisz go owinąć w cudzysłowie.

Aby utworzyć tablicę asocjacyjną zwrócić słowo kluczowe zamiast wartości, dodaj wykrzyknik " ! "Przed nazwą tablicy. Symbol " @ "Może być używany jako symbol wieloznaczny, co oznacza wszystkie elementy tablicy.

Ten dla Pętla zawiera wszystkie słowa kluczowe:

 Dla klucza w "$ {! Kraje [@]}"; czy echo $ klucz; zrobione 

Należy pamiętać, że słowa kluczowe nie są koniecznie wymienione w kolejności, którą zostały stworzone, ale to nie ma znaczenia. Tablice stowarzyszone nie polegają na zamówionym indeksie.

Możemy również użyć rozbudowy parametrów, aby wymienić wszystkie słowa kluczowe. Będą wymienione na jednej linii, a nie na linii.

 Echo "$ {! Kraje [@]}" 
 Echo "$ {! Akronims [@]}" 

Możemy zwiększyć naszą dla Pętla, aby wydrukować słowa kluczowe i wartości w tym samym czasie.

 Dla klawisza w "$ {! Akronims [@]}; czy echo "$ Key - $ {akronims [$ Key]}"; zrobione 

Jeśli chcemy wiedzieć, ile elementów znajduje się w tabliczkach, możemy użyć hasha "#" przed nazwą tablicy zamiast wykrzyknika.

 Echo "$ {! Kraje [@]}" 
 Echo "$ {! Akronims [@]}" 

Sprawdzanie, czy istnieje element tablicy

Jeśli szukasz słowa kluczowego, ale nie ma takiego elementu tablicy, wartość powrotowa będzie pustym sznurkiem. Czasami warto mieć inny wskaźnik obecności lub braku elementu tablicy.

Możemy sprawdzić na obecność elementu tablicy przy użyciu " + _ "Operator. Należy zauważyć, że pochodzi po słowie kluczowym, nie przed nazwą tablicy, taką jak poprzednie operatorzy, które widzieliśmy.

 Jeśli [$ {akronimy [EOF] + _}]; Następnie echo "znaleziono"; inaczej echo "nie znaleziono"; fi 
 Jeśli [$ {akronimy [FTP] + _}]; Następnie echo "znaleziono"; inaczej echo "nie znaleziono"; fi 

Element tablicy ze słowem kluczowym "EOF" znajduje się w tablicy, ale element tablicy ze słowem kluczowym "FTP" nie jest.

Dodawanie elementów tablicy

Dodanie nowych elementów do tablicy asocjacyjnej jest łatwe. W przeciwieństwie do niektórych języków programowania, nie musisz definiować rozmiaru tablicy, gdy go deklarujesz. Możesz kontynuować dodawanie nowych elementów bez trafienia na predefiniowaną górną granicę.

Aby dodać nowy element do tablicy, używamy " + =. "Operator.

 Kraje + = ([FYI] = Fidżi) 
 Echo "$ (# kraje [@]}" 
 Echo $ {kraje [FYI]} 

Liczba elementów w tablicy wynosi teraz sześć, a wyszukiwanie nowych słów kluczowych znajdzie element tablicy i zwraca jego wartość.

Usuwanie elementów tablic i tablic

ten nieoprawny polecenie służy do usuwania elementów tablicy. Jeśli słowo kluczowe ma w nim spacje, owinąć go w cudzysłów.

 Nieusteczni akronimy [EOF] 
 Jeśli [$ {akronimy [EOF] + _}]; Następnie echo "znaleziono"; inaczej echo "nie znaleziono"; fi 

Aby usunąć całą tablicę, użyj nieoprawny z nazwą tablicy.

 Nieusteczne kraje 

Używanie zmiennych z tablicami

Używanie zmiennych z tablicami asocjacyjnymi jest proste. W tym przykładzie ustawymy klucz zmienny do ciągów "EOF". Użyjemy zmiennej, gdy dodamy nowy element tablicy do tablicy. Właściwie zastępujemy element tablicy, który usunęliśmy wcześniej.

Będziemy odzyskać nowy element tablicy, dzwoniąc do nowego słowa kluczowego, a także za pomocą zmiennej. Jeśli słowo kluczowe zawiera spacje, musisz owinąć nazwę zmiennej w znaki cudzysłowu.

 Klawisz = EOF 
 Akronims [$ Klucz] = "Koniec ramki" 
 Echo $ {Acronyms [EOF]} 
 Echo $ {akronims [Klucz $]} 

Bądź kreatywny

Nasze przykłady były kolekcjami informacji, w których każdy element tablicy jest niezależny od wszystkich pozostałych, podobnie jak słownik. Każda z nich jest wyjątkową definicją. Ale tablice asocjacyjne mogą równie łatwe przy pomocy różnorodne informacje dotyczące wszystkich powiązanych z jedną rzeczą, takie jak specyfikacje różnych elementów sprzętu komputerowego:

 Deklaruj -a Specyfikacja 
 Specyfikacja [CPU] = "Dual Core AMD Ryzen 5 3600" 
 Specyfikacja [prędkość] = "3600 MHz" 
 Specyfikacja [Kernel] = "5.11.0-17-Generic x86_64" 
 Specyfikacja [MEM] = "1978,5 MIB" 
 Specyfikacja [Storage] = "32 GIB" 
 Specyfikacja [Powłoka] = "Bash" 
 Echo $ {Specyfikacja [CPU]} 

Pisanie skutecznie w języku oznacza poznanie mechanizmów i struktur, które oferuje, a wybierając najbardziej odpowiedni dla problemu, który próbujesz rozwiązać. Skoczeniowe tablice zapewniają łatwy w użyciu sposób przechowywania danych, które można wyszukać według nazwy, podobnie jak słownik.


Dystrybucja - Najpopularniejsze artykuły

Jak korzystać strace do monitorowania systemu Linux zwraca

Dystrybucja Jun 23, 2025

Fatmawati Achmad Zaenuri / Shutterstock.com Programy Linux Zapytaj jądro robić dla nich kilka rzeczy. ten pasek Polecenie ujawnia te ..


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..


6 najlepszych Lekki Linux dystrybucji

Dystrybucja Jul 27, 2025

3dmi / Shutterstock.com. Jeśli komputer okien lub komputer Mac jest stary i walczą o utrzymanie, instalowanie Linuksa może dać mu świeżą dzierżawę ży..


Ubuntu 21.10 trafi dostosowanym GNOMEName 40 pulpitu

Dystrybucja Oct 14, 2025

Ubuntu. Jeśli jesteś użytkownikiem Ubuntu, czy ktoś, kto myśli o tym, spróbuj, dziś jest dobry dzień. Canoniczna oficjalnie wydała Ubuntu 21.10 z niestandardowym..


Jak zaktualizować Fedora Linux

Dystrybucja Nov 10, 2024

Więc ostatecznie pobrane i zainstalowane Fedora Linux, ale teraz można się zastanawiać, w jaki sposób utrzymać system na bieżąco? Na szczęście, Fedora daje kilka metod do aktuali..


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..


5 funkcji Ubuntu Linux, których powinieneś używać

Dystrybucja Dec 6, 2024

Ubuntu Linux jest bogaty w funkcje i ma wyselekcjonowany wybór wstępnie zainstalowanego oprogramowania. Koprz trochę głębiej, a znajdziesz niektóre funkcje, których powinieneś używać...


10 Przydatne przykłady polecenia Linux rsync

Dystrybucja Oct 24, 2025

Linux rsync Polecenie to potężne narzędzie do kopiowania plików i synchronizacji folderów. Oto dziesięć typowych przypadków użycia, które będziesz mógł dobrze wykorzysta..


Kategorie