Tablica asocjacyjna w Bash

Tablica asocjacyjna w Bash

Zmienna tablicy służy do przechowywania wielu danych z indeksem, a wartość każdego elementu tablicy jest dostępna przez odpowiednią wartość indeksu tego elementu. Tablica, która może przechowywać wartość ciągu jako indeks lub klucz, nazywa się tablicą asocjacyjną. Tablicę asocjacyjną można zadeklarować i używać w skrypcie Bash, tak jak inne języki programowania. Ta funkcja jest dodawana w Bash 4. W tym samouczku można zadeklarować tablicę asocjacyjną i dostęp do Bash.

Sprawdź aktualną wersję Bash przed rozpoczęciem następnej części tego samouczka. Uruchom następujące polecenie z terminala, aby sprawdzić zainstalowaną wersję Bash. Jeśli zainstalowana wersja Bash w systemie operacyjnym jest mniejsza niż 4, musisz najpierw zainstalować wersję 4 Bash, aby kontynuować ten samouczek.

$ bash --version

Poniższe dane wyjściowe pokazuje, że bieżąca wersja BASH wynosi 4.4.19.

Deklarowanie i inicjowanie tablicy asocjacyjnej:

Tablicę asocjacyjną można zadeklarować w Bash za pomocą ogłosić Słowo kluczowe i elementy tablicy można zainicjować w momencie deklaracji tablicy lub po ogłoszeniu zmiennej tablicy. Poniższy skrypt utworzy nazwaną tablicę asocjacyjną Assarray1 a cztery wartości tablicy są inicjowane indywidualnie.

$ declare -A Assarray1
$ Assarray1 [owoc] = mango
$ Assarray1 [Bird] = Pokail
$ Assarray1 [kwiat] = róża
$ Assarray1 [zwierzę] = tygrys

Wyjście

Poniższy skrypt zainicjuje tablicę asocjacyjną, Assarrat2 W momencie deklaracji tablicy. Tutaj w momencie deklaracji tablicy są zdefiniowane trzy wartości tablicy z klawiszami.

$ declare -a Assarray2 = ([hdd] = samsung [monitor] = dell [klawiatura] = a4tech)

Wyjście:

Dostęp do tablicy asocjacyjnej:

Elementy tablicy tablicy asocjacyjnej można uzyskać indywidualnie lub za pomocą dowolnej pętli. Te dwa sposoby są pokazane w tej części samouczka. Klawisze i wartości tablicy mogą być drukowane osobno i razem.

Następujące polecenia wydrukują dwie wartości tablicy, Assarray1 (zadeklarowane wcześniej) poprzez określenie wartości kluczowej.

$ echo $ Assarray1 [ptak]
$ echo $ Assarray1 [flower]

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń.

Czasami konieczne jest wydrukowanie wszystkich kluczy lub wszystkich wartości tablicy. Wszystkie klucze tablicy można wydrukować za pomocą rozszerzenia parametru pętli lub bash. Poniższe pierwsze polecenie wydrukuje wszystkie klawisze tablicy w każdym wierszu za pomocą pętli, a drugie polecenie wydrukuje wszystkie klawisze tablicy w jednym wierszu za pomocą rozszerzenia parametru Bash. Tutaj, '!„Symbol służy do czytania klawiszy tablicy asocjacyjnej.

$ za klucz w „$ !Assarray1 [@] "; do echo $ key; gotowe
$ echo "$ !Assarray1 [@] "

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń.

Wszystkie wartości tablicy można wydrukować za pomocą rozszerzenia parametru pętli lub bash. Poniższe pierwsze polecenie wydrukuje wszystkie wartości tablicy w każdym wierszu za pomocą pętli, a drugie polecenie wydrukuje wszystkie wartości tablicy w jednym wierszu za pomocą rozszerzenia parametru BASH.

$ dla val w „$ Assarray1 [@]”; do echo $ val; zrobione
$ echo "$ Assarray1 [@]"

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu powyższych poleceń.

Zarówno klucze, jak i wartości tablicy asocjacyjnej można wydrukować za pomocą pętli. Poniższy skrypt wydrukuje wszystkie wartości za pomocą kluczy nazwanej tablicy asocjacyjnej Assarray1. Tutaj każdy klawisz tablicy zostanie przeanalizowany na każdym etapie pętli, a klucz jest używany jako indeks tablicy do odczytania wartości odpowiedniego klucza.

$ za klucz w „$ !Assarray1 [@] "; do echo" $ key => $ Assarray1 [$ key] "; gotowe

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Dodawanie nowych danych w tablicy asocjacyjnej:

Nowy element tablicy można łatwo dodać w tablicy asocjacyjnej po ogłoszeniu i zainicjowaniu tablicy. Następujące polecenia sprawdzą bieżące wartości tablicy tablicy, Assarray2, Dodaj nową wartość ”Logitech”Z kluczem„Mysz”I ponownie sprawdź aktualne elementy tablicy.

$ echo "$ Assarray2 [@]"
$ Assarray2+= ([mysz] = logitech)
$ echo "$ Assarray2 [@]"

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu poleceń.

Usuwanie danych z tablicy asocjacyjnej:

Każda wartość elementu tablicy asocjacyjnej można usunąć na podstawie wartości kluczowej. Polecenie „Unset” służy do usunięcia konkretnej wartości tablicy asocjacyjnej. Używane są następujące polecenia sprawdź bieżącą wartość tablicy za pomocą klucza „”Monitor”, delete the value using unset command and again run the 'echo' command to check the value is deleted or not. $ echo $ Assarray2 [Monitor]

$ unset Assarray2 [Monitor]
$ echo $ Assarray2 [Monitor]

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu poleceń.

Znalezienie brakującego indeksu w tablicy asocjacyjnej:

Brakujący wskaźnik lub klucz tablicy można znaleźć za pomocą instrukcji warunkowej. Poniższy skrypt sprawdzi klawisz tablicy: „Monitor" istnieje lub nie. Wartość tego klucza jest usuwana w poprzednim przykładzie. Tak więc warunek „jeśli” zwróci false i „nie znaleziono” zostanie wydrukowana.

$ if [$ Assarray2 [Monitor]+_]; Następnie Echo „Znaleziono”; Else Echo „nie znaleziono”; fi

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu.

Usuwanie tablicy asocjacyjnej:

Każda tablica asocjacyjna można usunąć za pomocą polecenia „Unset”. Poniższe pierwsze polecenie wydrukuje wszystkie wartości wymienionej tablicy Assarray1 w jednym wierszu, jeśli macierz istnieje. Drugie polecenie usunie tablicę. Trzecie polecenie służy do sprawdzenia, czy tablica istnieje lub usuwana. Jeśli tablica zostanie usunięta, nie pojawi się żadne wyjście.

$ echo "$ Assarray1 [@]"
$ unset Assarray1
$ echo "$ Assarray1 [@]"

Wyjście:

Następujące dane wyjściowe pojawią się po uruchomieniu poleceń.

Wniosek

Gdy jest to wymagane do przechowywania wielu danych pary wartości kluczowej w BASH, lepiej jest użyć tablicy asocjacyjnej do przechowywania danych. W jaki sposób koder może zadeklarować i zainicjować tablicę asocjacyjną, klawisze tablicy parse lub wartości lub jedno. Mam nadzieję, czytelnik będzie mógł prawidłowo użyć tablicy asocjacyjnej w Bash.