Kako manipulirati i kontrolirati podatke pomoću Bash polja

Kako Manipulirati I Kontrolirati Podatke Pomocu Bash Polja



Varijabla polja koristi se u bilo kojem programskom jeziku za pohranu višestrukih vrijednosti pomoću indeksa. Indeks polja može biti broj ili niz. Niz koji sadrži numerički indeks naziva se 'numerički niz', a niz koji sadrži vrijednost niza kao indeks naziva se 'asocijativni niz'. U Bashu se mogu kreirati i numerički i asocijativni nizovi. Metode manipuliranja i kontrole podataka Bash polja detaljno su prikazane pomoću 15 primjera u ovom vodiču.

Popis sadržaja:

  1. Definirajte niz prema indeksu
  2. Definirajte niz s više vrijednosti
  3. Definirajte asocijativni niz
  4. Izbrojite vrijednosti polja
  5. Očitajte vrijednosti polja petljom
  6. Pročitajte posebne vrijednosti niza
  7. Umetnite vrijednosti polja
  8. Pročitajte sadržaj datoteke u polje
  9. Kombinirajte vrijednosti polja
  10. Izmijenite vrijednosti polja
  11. Uklonite vrijednosti polja
  12. Pretraživanje i zamjena vrijednosti polja
  13. Koristite niz kao argument funkcije
  14. Vrati polje iz funkcije
  15. 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:



  p1





Idi na vrh

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:

  p2

Idi na vrh

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:

  p3

Idi na vrh

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:

  p4

Idi na vrh

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:

  p5

Idi na vrh

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:

  p6

Idi na vrh

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:

  p7

Idi na vrh

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

Mango

Jackfruit

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:

  p8

Idi na vrh

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:

  p9

Idi na vrh

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:

  p10

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:

  p11

Idi na vrh

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:

  p12

Idi na vrh

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:

  p13

Idi na vrh

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:

Idi na vrh

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:

  p15

Idi na vrh

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.