- Definirajte niz prema indeksu
- Definirajte niz s više vrijednosti
- Definirajte asocijativni niz
- Izbrojite vrijednosti polja
- Očitajte vrijednosti polja petljom
- Pročitajte posebne vrijednosti niza
- Umetnite vrijednosti polja
- Pročitajte sadržaj datoteke u polje
- Kombinirajte vrijednosti polja
- Izmijenite vrijednosti polja
- Uklonite vrijednosti polja
- Pretraživanje i zamjena vrijednosti polja
- Koristite niz kao argument funkcije
- Vrati polje iz funkcije
- Neka polje bude prazno
Definirajte niz prema indeksu
Metoda deklariranja niza spominjanjem sekvencijalnih ili nesekvencijalnih numeričkih indeksa prikazana je u sljedećoj skripti. Ova vrsta niza naziva se numerički niz. Ovdje se polje '$books' stvara definiranjem tri sekvencijalna indeksa, a polje '$products' se stvara definiranjem četiri nesekvencijalna indeksa. Sve vrijednosti oba niza ispisuju se pomoću funkcije “printf”.
#!/bin/bash
#Definirajte indeks polja u sekvencijalnom redoslijedu
knjige [ 0 ] = 'Učenje Bash Shella'
knjige [ 1 ] = 'Cybersecurity Ops with bash'
knjige [ 2 ] = 'Bash Command Line Pro Savjeti'
jeka 'Sve vrijednosti prvog niza:'
printf '%s n' ' ${knjige[@]} '
#Definirajte indeks polja u nesekvencijalnom redoslijedu
proizvoda [ 10 ] = 'olovka'
proizvoda [ 5 ] = 'Olovka'
proizvoda [ 9 ] = 'Rular'
proizvoda [ 4 ] = 'Papir veličine A4'
jeka
jeka 'Sve vrijednosti drugog polja:'
printf '%s n' ' ${products[@]} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Vrijednosti oba polja ispisuju se u izlazu. Redoslijed indeksa održava se u vrijeme ispisa za niz nesekvencijalnih indeksa:
Definirajte niz s višestrukim vrijednostima
Numerički niz s višestrukim vrijednostima može se deklarirati pomoću naredbe “declare” s opcijom -a ili bez korištenja naredbe “declare”. U sljedećoj skripti, prvo polje je deklarirano pomoću naredbe “declare”, a drugo polje je kreirano bez korištenja naredbe “declare”.
#!/bin/bash
#Deklarajte numerički niz s ključnom riječi 'declare'
proglasiti -a imena = ( 'Michael' 'David' 'Aleksandar' 'Thomas' 'Robert' 'Richard' )
#Ispiši vrijednosti polja
jeka 'Sve vrijednosti prvog niza:'
printf '%s n' ' ${names[@]} '
#Deklarajte numerički niz bez ključne riječi 'declare'
knjige = ( 'Vodičji za skriptiranje ljuske' 'Bish Bash Bosh!' 'Brzo nauči bash' )
#Dodaj novi red
jeka
#Ispiši vrijednosti polja
jeka 'Sve vrijednosti drugog polja:'
printf '%s n' ' ${knjige[@]} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Ovdje su ispisane vrijednosti oba niza:
Definirajte asocijativni niz
Niz koji sadrži vrijednost niza kao indeks naziva se asocijativni niz. Opcija -A koristi se s naredbom “declare” u Bashu za stvaranje asocijativnog Bash niza. U sljedećoj skripti, prvo asocijativno polje je deklarirano spominjanjem indeksa odvojeno, a drugo polje je deklarirano spominjanjem svih parova ključ-vrijednost u trenutku deklaracije niza.
#!/bin/bash#Deklarajte varijablu asocijativnog niza bez vrijednosti
proglasiti -A zaposlenik
#Zasebno dodijelite vrijednost definiranjem indeksa
zaposlenik [ 'iskaznica' ] = '78564'
zaposlenik [ 'Ime' ] = 'Dostupan glumac'
zaposlenik [ 'post' ] = 'DIREKTOR TVRTKE'
zaposlenik [ 'plaća' ] = 300 000
#Ispiši dvije vrijednosti niza
jeka 'ID zaposlenika: ${employee[id]} '
jeka 'Ime zaposlenika: ${zaposlenik[ime]} '
#Deklarirajte asocijativni niz s vrijednostima
proglasiti -A tečaj = ( [ kodirati ] = 'CSE-206' [ Ime ] = 'Objektno orijentirano programiranje' [ kreditni_sat ] = 2.0 )
#Dodaj novi red
jeka
#Ispiši dvije vrijednosti drugog polja
jeka 'Naziv tečaja: ${tečaj[naziv]} '
jeka 'Kreditni sat: ${course[credit_hour]} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Određene vrijednosti asocijativnog niza ispisuju se ovdje uz spominjanje ključa ili vrijednosti indeksa:
Izbrojite vrijednosti polja
Metoda brojanja ukupnih elemenata numeričkog niza i asocijativnog niza prikazana je u sljedećoj skripti:
#!/bin/bash#Deklarirajte numerički niz
proglasiti -a imena = ( 'Michael' 'David' 'Aleksandar' 'Thomas' 'Robert' 'Richard' ) ;
jeka 'Duljina numeričkog niza je ${#names[@]} '
#Deklarirajte asocijativni niz
proglasiti -A tečaj = ( [ kodirati ] = 'CSE-206' [ Ime ] = 'Objektno orijentirano programiranje' [ kreditni_sat ] = 2.0 )
jeka 'Duljina asocijativnog niza je ${#course[@]} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Ovdje se ispisuje duljina niza numeričkih i asocijativnih nizova:
Očitajte vrijednosti polja petljom
Metoda čitanja svih vrijednosti numeričkog niza i asocijativnog niza pomoću petlje 'for' prikazana je u sljedećoj skripti:
#!/bin/bash#Deklarirajte numerički niz
proglasiti -a knjige = ( 'Vodičji za skriptiranje ljuske' 'Bish Bash Bosh!' 'Brzo nauči bash' )
#Ispiši vrijednosti numeričkog niza
jeka 'Vrijednosti numeričkog niza su:'
za u u ' ${knjige[@]} '
čini
jeka ' $in '
učinjeno
jeka
#Deklarirajte asocijativni niz s vrijednostima
proglasiti -A klijentima = (
[ iskaznica ] = 'H-5623'
[ Ime ] = 'G. Ahnaf'
[ adresa ] = '6/A, Dhanmondi, Dhaka.'
[ telefon ] = '+8801975642312' )
#Ispiši vrijednosti asocijativnog niza
jeka 'Vrijednosti asocijativnog niza su:'
za k u ' ${!klijenti[@]} '
čini
jeka ' $k => ${klijenata[$k]} '
učinjeno
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Ovdje se u izlazu ispisuju vrijednosti numeričkog niza i parovi ključ-vrijednost asocijativnog niza:
Pročitajte određeni raspon vrijednosti niza
Vrijednosti niza određenog raspona indeksa prikazane su u sljedećoj skripti. U skripti je definiran numerički niz od četiri elementa. Kasnije se ispisuju dvije vrijednosti niza iz drugog indeksa niza.
#!/bin/bash#Deklarirajte numerički niz
proglasiti -a kolači = ( 'Čokoladna torta' 'Torta od vanilije' 'Torta od crvenog baršuna' 'kolač od jagoda' )
#Ispiši određene vrijednosti polja
jeka 'Drugi i treći element vrijednosti niza su:'
printf '%s n' ' ${kolači[@]:1:2} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Druga i treća vrijednost niza su 'Vanilla Cake' i 'Red Velvet Cake' koje se ispisuju u izlazu:
Umetnite vrijednosti polja
Metoda dodavanja više vrijednosti na kraju niza prikazana je u sljedećoj skripti. Glavni niz koji je “$books” sadrži tri elementa, a dva elementa se dodaju na kraj niza “$books”.
#!/bin/bash#Deklarirajte numerički niz
proglasiti -a knjige = ( 'Vodičji za skriptiranje ljuske' 'Bish Bash Bosh!' 'Brzo nauči bash' )
#Ispiši vrijednosti polja prije umetanja
jeka 'Vrijednosti polja:'
printf '%s n' ' ${knjige[@]} '
jeka
knjige = ( ' ${knjige[@]} ' 'Linux naredbeni redak i Biblija skriptiranja ljuske' 'Vodič za napredno skriptiranje za Bash od Mendela Coopera' )
#Ispiši vrijednosti polja nakon umetanja
jeka 'Vrijednosti polja nakon umetanja dvije vrijednosti:'
printf '%s n' ' ${knjige[@]} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Vrijednosti polja prije i nakon umetanja novih vrijednosti ispisuju se u izlazu:
Pročitajte sadržaj datoteke u polje
Napravite tekstualnu datoteku pod nazivom “fruits.txt” sa sljedećim sadržajem da testirate skriptu ovog primjera:
voće.txt
MangoJackfruit
Ananas
naranča
Banana
U sljedećoj skripti sadržaj datoteke pohranjuje se u polje pod nazivom “$data”. Ovdje je svaki redak datoteke pohranjen kao svaki element niza. Zatim se ispisuju vrijednosti polja.
#!/bin/bash#Pročitajte ime datoteke od korisnika
čitati -str 'Unesite naziv datoteke:' naziv datoteke
ako [ -f $naziv datoteke ]
zatim
#Pročitaj sadržaj datoteke u niz'
podaci = ( ` mačka ' $naziv datoteke ' ` )
jeka 'Sadržaj datoteke naveden je u nastavku:'
#Pročitajte datoteku red po red
za crta u ' ${data[@]} '
čini
jeka $linija
učinjeno
biti
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Izlaz koji prikazuje naredba “cat” i izlaz skripte slični su jer se istoj datoteci pristupa naredbom “cat” i skriptom:
Kombinirajte vrijednosti polja
Novi niz nastaje kombiniranjem vrijednosti više nizova. U sljedećoj skripti definirana su dva numerička niza nizova. Zatim se stvara novi niz kombiniranjem vrijednosti tih nizova.
#!/bin/bash#Deklarirajte prvi niz
proglasiti -a Popis imena1 = ( 'Michael' 'David' 'Aleksandar' 'Thomas' )
jeka 'Prve vrijednosti niza su:'
printf '%s, ' ${nameList1[@]}
jeka
#Deklarirajte drugi niz
proglasiti -a Popis imena2 = ( 'Robert' 'Richard' )
jeka 'Druge vrijednosti niza su:'
printf '%s, ' ${nameList2[@]}
jeka
#Stvorite novi niz kombiniranjem dva niza
kombinirani_niz = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )
jeka 'Kombinirane vrijednosti polja su:'
printf '%s, ' ${combined_array[@]}
jeka
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Ovdje se u izlazu ispisuju vrijednosti tri niza. Treći niz sadrži sve vrijednosti prvog i drugog niza:
Izmijenite vrijednosti polja
Metoda ažuriranja jedne ili više vrijednosti niza spominjanjem indeksa prikazana je u sljedećoj skripti:
#!/bin/bash#Deklarirajte prvi niz
proglasiti -a lista imena = ( 'Michael' 'David' 'Aleksandar' 'Thomas' )
jeka 'Vrijednosti polja:'
printf '%s, ' ${nameList[@]}
jeka
#Ažuriraj 2. vrijednost niza
lista imena [ 1 ] = 'Robert'
jeka 'Vrijednosti polja nakon ažuriranja:'
printf '%s, ' ${nameList[@]}
jeka
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Vrijednosti glavnog niza i ažuriranih nizova ispisuju se u izlazu:
Uklonite vrijednosti polja
Naredba “unset” koristi se za uklanjanje određenog elementa ili svih elemenata niza. U sljedećoj skripti uklanja se drugi element niza.
#!/bin/bash#Deklarirajte numerički niz
proglasiti -a knjige = ( 'Vodičji za skriptiranje ljuske' 'Bish Bash Bosh!' 'Brzo nauči bash' )
#Ispiši vrijednosti polja prije uklanjanja
jeka 'Vrijednosti polja:'
printf '%s n' ' ${knjige[@]} '
jeka
#Uklonite 2. element
nepostavljeno knjige [ 1 ]
#Ispiši vrijednosti polja nakon uklanjanja
jeka 'Vrijednosti polja nakon uklanjanja 2. vrijednosti:'
printf '%s n' ' ${knjige[@]} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Vrijednosti glavnog niza i vrijednosti niza nakon uklanjanja jedne vrijednosti ispisuju se u izlazu:
Pretraživanje i zamjena vrijednosti polja
U sljedećoj skripti određena vrijednost polja zamjenjuje se drugom vrijednošću ako se vrijednost pretraživanja koja je definirana u uzorku podudara s bilo kojom vrijednošću polja '$names'.
#!/bin/bash#Deklarirajte prvi niz
proglasiti -a imena = ( 'Michael' 'David' 'Aleksandar' 'Thomas' )
#Ispiši izvorne vrijednosti niza
jeka 'Izvorne vrijednosti niza:'
printf '%s n' ' ${names[@]} '
#Generiraj niz nakon zamjene vrijednosti polja
ažurirani_niz = ${names[@]/Alexander/Richard}
#Ispiši vrijednosti polja nakon zamjene
jeka 'Vrijednosti polja nakon zamjene:'
printf '%s n' ' ${updated_array[@]} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Vrijednosti glavnog polja i vrijednosti polja nakon zamjene vrijednosti ispisuju se u izlazu:
Koristite niz kao argument funkcije
U sljedećoj skripti, varijabla niza prosljeđuje se kao argument funkcije, a vrijednosti tog niza ispisuju se kasnije.
#!/bin/bash#Deklarirajte niz brojeva
proglasiti -a brojevima = ( 10 6 Četiri pet 13 8 )
#Definirajte funkciju koja će uzeti vrijednost argumenta
funk ( )
{
#Pročitajte prvi argument
brojevima = $1
#Ispiši vrijednosti polja
jeka 'Vrijednosti polja:'
printf '%d\n' ' ${numbers[@]} '
}
#Pozovite funkciju s nizom kao argumentom
funk ' ${numbers[@]} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz:
Vrati polje iz funkcije
U sljedećoj skripti funkcija se poziva s četiri numerička argumenta. Niz se stvara s vrijednostima argumenata i taj se niz vraća iz funkcije pozivatelju.
#!/bin/bash#Definirajte funkciju koja čita četiri vrijednosti argumenta
funk ( )
{
#Pročitajte vrijednosti argumenata
brojevima = ( $1 2 dolara 3 dolara 4 dolara )
#Vrati niz
jeka ' ${numbers[@]} '
}
#Pozovite funkciju s tri argumenta
return_val =$ ( funk 78 Četiri pet 90 23 )
#Pohrani povratnu vrijednost u nizu
čitati -a na jedan <<< $return_val
#Ispiši vrijednosti vraćenog niza
jeka 'Vrijednosti niza su:'
za u u ' ${num[@]} '
čini
jeka ' $in '
učinjeno
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz:
Neka polje bude prazno
Sljedeća skripta prikazuje metodu pražnjenja niza pomoću naredbe “unset”. Ukupan broj vrijednosti polja ispisuje se prije i nakon pražnjenja polja.
#!/bin/bash#Deklarirajte niz brojeva
proglasiti -a brojevima = ( 10 6 Četiri pet 13 80 )
jeka 'Brojevi vrijednosti polja: ${#numbers[@]} '
#Učini niz praznim
nepostavljeno brojevima
jeka 'Broj vrijednosti polja nakon pražnjenja polja: ${#numbers[@]} '
Izlaz :
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Broj elemenata niza postao je 0 nakon što je niz postao prazan:
Zaključak
Različite metode deklariranja, pristupa, modificiranja i uklanjanja varijabli polja u Bash skripti prikazane su u ovom vodiču pomoću 15 jednostavnih primjera. Nadamo se da će ovaj vodič pomoći korisnicima Basha da se detaljno upoznaju s korištenjem Bash polja.