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