logo [8kb]
Zmienne tablicowe
BASH pozwala na stosowanie zmiennych tablicowych jednowymiarowych. Czym jest tablica? To zmienna która przechowuje listę jakichś wartości (rozdzielonych spacjami), w BASH'u nie ma maksymalnego rozmiaru tablic. Kolejne wartości zmiennej tablicowej indexowane są przy pomocy liczb całkowitych, zaczynając od 0.

Składnia

zmienna=(wartość1 wartość2 wartość3 wartośćn)

Przykład:

#!/bin/bash

tablica=(element1 element2 element3)

echo ${tablica[0]}
echo ${tablica[1]}
echo ${tablica[2]}
Zadeklarowana została zmienna tablicowa o nazwie: tablica, zawierająca trzy wartości: element1 element2 element3. Natomiast polecenie: echo ${tablica[0]} wydrukuje na ekranie pierwszy elementu tablicy. W powyższym przykładzie w ten sposób wypisana zostanie cała zawartość tablicy. Do elementów tablicy odwołujemy się za pomocą wskaźników.

  • Odwołanie do elementów tablicy.

    Składnia:

    ${nazwa_zmiennej[wskaźnik]}

    Wskaźnikiami są indexy elementów tablicy, począwszy od 0 do n oraz @, *. Gdy odwołując się do zmiennej nie podamy wskaźnika: ${nazwa_zmiennej} to nastąpi odwołanie do elementu tablicy o indexie 0.Jeśli wskaźnikiem będą: @ lub * to zinterpretowane zostaną jako wszytskie elementy tablicy, w przypadku gdy tablica nie zawiera żadnych elemntów to zapisy: ${nazwa_zmiennej[wskaźnik]} lub ${nazwa_zmiennej[wskaźnik]} są interpretowane jako nic.

    Przykład:

    Poniższy skrypt robi to samo co wcześniejszy.

    #!/bin/bash
    
    tablica=(element1 element2 element3)
    
    echo ${tablica[*]}
    
    Można też uzyskać długość (liczba znaków) danego elementu tablicy:

    ${#nazwa_zmiennej[wskaźnik]}

    Przykład:

    #!/bin/bash
    
    tablica=(element1 element2 element3)
    
    echo ${#tablica[0]}
    
    Polecenie echo ${#tablica[0]} wydrukuje liczbę znaków z jakich składa się pierwszy element tablicy: element1 wynik to 8. W podobny sposób można otrzymać liczbę wszystkich elementów tablicy, wystarczy jako wskaźnik podać: @ lub *.

    Przykład:

    #!/bin/bash
    
    tablica=(element1 element2 element3)
    
    echo ${#tablica[@]}
    
    Co da wynik: 3.

  • Dodawanie elementów do tablicy.

    Składnia:

    nazwa_zmiennej[wskaźnik]=wartość

    Przykład:

    #!/bin/bash
    
    tablica=(element1 element2 element3)
    tablica[3]=element4
    
    echo ${tablica[@]}
    
    Jak wyżej widać do tablicy został dodany element4 o indexie 3. Mechanizm dodawania elementów do tablicy, można wykorzystać do tworzenia tablic, gdy nie istnieje zmienna tablicowa do której dodajemy jakiś element, to BASH automatycznie ją utworzy:
    #!/bin/bash
    
    linux[0]=slackware
    linux[1]=debian
    
    echo ${linux[@]}
    
    Utworzona została tablica linux zawierająca dwa elementy.

  • Usuwanie elementów tablic i całych tablic.

    Dany element tablicy usuwa się za pomocą polecenia unset.

    Składnia:

    unset nazwa_zmiennej[wskaźnik]

    Przykład:

    #!/bin/bash
    
    tablica=(element1 element2 element3)
    echo ${tablica[@]}
    unset tablica[2]
    echo ${tablica[*]}
    
    Usunięty został ostatni element tablicy.

    Aby usunąć całą tablicę wystarczy podać jako wskaźnik: @ lub *.

    #!/bin/bash
    
    tablica=(element1 element2 element3)
    unset tablica[*]
    
    echo ${tablica[@]}
    
    Zmienna tablicowa o nazwie tablica przestała istnieć, polecenie: echo ${tablica[@]} nie wyświetli nic.

[ Index ] [ Zmienne programowe ] [ Zmienne specjalne ] [ Zmienne środowiskowe ]