Kaip manipuliuoti ir valdyti duomenis naudojant „Bash Array“.

Kaip Manipuliuoti Ir Valdyti Duomenis Naudojant Bash Array



Masyvo kintamasis naudojamas bet kurioje programavimo kalboje, norint išsaugoti kelias reikšmes naudojant indeksą. Masyvo indeksas gali būti skaičius arba eilutė. Masyvas, kuriame yra skaitinis indeksas, vadinamas „skaitiniu masyvu“, o masyvas, kuriame yra eilutės reikšmė kaip indeksas, vadinamas „asociaciniu masyvu“. „Bash“ gali būti sukurti tiek skaitmeniniai, tiek asociatyviniai masyvai. „Bash“ masyvo duomenų manipuliavimo ir valdymo metodai yra išsamiai parodyti naudojant 15 pavyzdžių šioje pamokoje.

Turinio sąrašas:

  1. Apibrėžkite masyvą pagal indeksą
  2. Apibrėžkite masyvą su keliomis reikšmėmis
  3. Apibrėžkite asociatyvųjį masyvą
  4. Suskaičiuokite masyvo reikšmes
  5. Skaitykite masyvo reikšmes pagal kilpą
  6. Perskaitykite konkrečias masyvo reikšmes
  7. Įdėkite masyvo reikšmes
  8. Perskaitykite failo turinį į masyvą
  9. Sujunkite masyvo reikšmes
  10. Pakeiskite masyvo reikšmes
  11. Pašalinkite masyvo reikšmes
  12. Ieškokite ir pakeiskite masyvo reikšmes
  13. Naudokite masyvą kaip funkcijos argumentą
  14. Grąžinkite masyvą iš funkcijos
  15. Padarykite masyvą tuščią

Apibrėžkite masyvą pagal indeksą

Masyvo deklaravimo būdas paminėjus nuoseklius arba nenuoseklius skaitinius indeksus parodytas šiame scenarijuje. Šio tipo masyvas vadinamas skaitmeniniu masyvu. Čia „$books“ masyvas sukuriamas apibrėžiant tris nuoseklius indeksus, o „$products“ masyvas sukuriamas apibrėžiant keturis nenuoseklius indeksus. Visos abiejų masyvų reikšmės spausdinamos naudojant „printf“ funkciją.







#!/bin/bash

#Apibrėžkite masyvo indeksą nuoseklia tvarka

knygos [ 0 ] = „Mokymasis bash Shell“

knygos [ 1 ] = „Kibernetinio saugumo operacijos su bash“

knygos [ 2 ] = „Bash Command Line Pro patarimai“

aidas 'Visos pirmojo masyvo reikšmės:'

printf '%s\n' ${knygos[@]}

#Apibrėžkite masyvo indeksą ne eilės tvarka

Produktai [ 10 ] = 'Rašiklis'

Produktai [ 5 ] = 'Pieštukas'

Produktai [ 9 ] = 'valdomas'

Produktai [ 4 ] = 'A4 dydžio popierius'

aidas

aidas 'Visos antrojo masyvo reikšmės:'

printf '%s\n' ${products[@]}

Išvestis :



Įvykdžius scenarijų pasirodo ši išvestis. Abiejų masyvų reikšmės atspausdinamos išvestyje. Indeksų tvarka išlaikoma spausdinant nenuoseklių indeksų masyvą:



  p1





Eiti į viršų

Apibrėžkite masyvą su keliomis reikšmėmis

Skaitinis masyvas su keliomis reikšmėmis gali būti deklaruojamas naudojant komandą „declare“ su parinktimi -a arba nenaudojant komandos „declare“. Šiame scenarijuje pirmasis masyvas deklaruojamas naudojant komandą „declare“, o antrasis masyvas sukuriamas nenaudojant komandos „declare“.



#!/bin/bash

#Deklaruokite skaitmeninį masyvą naudodami raktinį žodį „declare“.

deklaruoti -a vardai = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' 'Robertas' 'Ričardas' )

#Spausdinkite masyvo reikšmes

aidas 'Visos pirmojo masyvo reikšmės:'

printf '%s\n' ${names[@]}

#Deklaruoti skaitinį masyvą be raktinio žodžio „declare“.

knygos = ( „Shell Scripting Tutorials“ 'Bish Bash Bosh!' „Greitai išmok Bash“ )

#Pridėti naują eilutę

aidas

#Spausdinkite masyvo reikšmes

aidas 'Visos antrojo masyvo reikšmės:'

printf '%s\n' ${knygos[@]}

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Abiejų masyvų reikšmės spausdinamos čia:

  p2

Eiti į viršų

Apibrėžkite asociatyvųjį masyvą

Masyvas, kuriame yra eilutės reikšmė kaip indeksas, vadinamas asociatyviniu masyvu. Parinktis -A naudojama kartu su komanda „declare“ programoje „Bash“, kad būtų sukurtas asociatyvus „Bash“ masyvas. Šiame scenarijuje pirmasis asociatyvus masyvas deklaruojamas atskirai paminėjus indeksus, o antrasis masyvas deklaruojamas minint visas raktų ir reikšmių poras masyvo deklaravimo metu.

#!/bin/bash

#Deklaruoti asociatyvų masyvo kintamąjį be reikšmės

deklaruoti -A darbuotojas

#Priskirkite vertę atskirai, nustatydami indeksą

darbuotojas [ 'id' ] = '78564'

darbuotojas [ 'vardas' ] = „Aktoriai yra“

darbuotojas [ 'post' ] = 'generalinis direktorius'

darbuotojas [ 'atlyginimas' ] = 300 000

#Spausdinkite dvi masyvo reikšmes

aidas 'Darbuotojo ID: ${employee[id]}

aidas 'Darbuotojo vardas: ${employee[name]}

#Deklaruokite asociatyvų masyvą su reikšmėmis

deklaruoti -A kursą = ( [ kodas ] = „CSE-206“ [ vardas ] = 'Objektinis programavimas' [ kredito_valanda ] = 2.0 )

#Pridėti naują eilutę

aidas

#Spausdinkite dvi antrojo masyvo masyvo reikšmes

aidas 'Kurso pavadinimas: ${kursas[vardas]}

aidas 'Kredito valanda: ${kursas[kredito_valanda]}

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Konkrečios asociatyvaus masyvo reikšmės atspausdinamos čia, nurodant rakto arba indekso reikšmę:

  p3

Eiti į viršų

Suskaičiuokite masyvo reikšmes

Skaičių masyvo ir asociatyvaus masyvo visų elementų skaičiavimo metodas parodytas šiame scenarijuje:

#!/bin/bash

#Deklaruoti skaitinį masyvą

deklaruoti -a vardai = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' 'Robertas' 'Ričardas' ) ;

aidas 'Skaičių masyvo ilgis yra ${#names[@]}

#Deklaruoti asociatyvų masyvą

deklaruoti -A kursą = ( [ kodas ] = „CSE-206“ [ vardas ] = 'Objektinis programavimas' [ kredito_valanda ] = 2.0 )

aidas 'Asociatyvaus masyvo ilgis yra ${#kursas[@]}

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Skaitinių ir asociatyvinių masyvų masyvo ilgis spausdinamas čia:

  p4

Eiti į viršų

Skaitykite masyvo reikšmes pagal kilpą

Visų skaitmeninio masyvo ir asociatyvaus masyvo reikšmių nuskaitymo metodas naudojant „for“ kilpą parodytas šiame scenarijuje:

#!/bin/bash

#Deklaruoti skaitinį masyvą

deklaruoti -a knygos = ( „Shell Scripting Tutorials“ 'Bish Bash Bosh!' „Greitai išmok Bash“ )

#Spausdinkite skaitines masyvo reikšmes

aidas 'Skaičių masyvo reikšmės yra:'

dėl in in ${knygos[@]}

daryti

aidas $in

padaryta

aidas

#Deklaruokite asociatyvų masyvą su reikšmėmis

deklaruoti -A klientų = (

[ id ] = „H-5623“

[ vardas ] = 'Ponas. Ahnaf'

[ adresu ] = „6/A, Dhanmondi, Daka“.

[ telefonas ] = „+8801975642312“ )

#Spausdinkite asociatyvias masyvo reikšmes

aidas 'Asociacinės masyvo reikšmės yra:'

dėl k in ${!clients[@]}

daryti

aidas $k => ${clients[$k]}

padaryta

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Čia išvestyje atspausdinamos skaitinio masyvo reikšmės ir asociatyvaus masyvo rakto-reikšmių poros:

  p5

Eiti į viršų

Perskaitykite konkretų masyvo verčių diapazoną

Tam tikro indeksų diapazono masyvo reikšmės rodomos šiame scenarijuje. Scenarijuje yra apibrėžtas keturių elementų skaitmeninis masyvas. Dvi masyvo reikšmės iš antrojo masyvo indekso išspausdinamos vėliau.

#!/bin/bash

#Deklaruoti skaitinį masyvą

deklaruoti -a pyragaičiai = ( 'Šokoladinis pyragas' 'Vanilinis pyragas' 'Raudonojo aksomo pyragas' 'Braškių pyragas' )

#Spausdinkite konkrečias masyvo reikšmes

aidas 'Antrasis ir trečiasis masyvo reikšmių elementai yra:'

printf '%s\n' ${pyragai[@]:1:2}

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Antroji ir trečioji masyvo reikšmės yra „Vanilla Cake“ ir „Red Velvet Cake“, kurios atspausdinamos išvestyje:

  6 p

Eiti į viršų

Įdėkite masyvo reikšmes

Kelių reikšmių pridėjimo masyvo pabaigoje metodas parodytas kitame scenarijuje. Pagrindiniame masyve, kuris yra „$books“, yra trys elementai ir du elementai pridedami „$books“ masyvo pabaigoje.

#!/bin/bash

#Deklaruoti skaitinį masyvą

deklaruoti -a knygos = ( „Shell Scripting Tutorials“ 'Bish Bash Bosh!' „Greitai išmok Bash“ )

#Prieš įterpdami atspausdinkite masyvo reikšmes

aidas 'Masyvo reikšmės:'

printf '%s\n' ${knygos[@]}

aidas

knygos = ( ${knygos[@]} „Linux“ komandų eilutė ir „Shell Scripting Bible“ Mendelio Cooperio „Išplėstinis Bash scenarijų vadovas“ )

#Įdėję spausdinkite masyvo reikšmes

aidas 'Masyvo reikšmės įterpus dvi reikšmes:'

printf '%s\n' ${knygos[@]}

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Masyvo reikšmės prieš ir po naujų reikšmių įterpimo išspausdinamos išvestyje:

  p7

Eiti į viršų

Perskaitykite failo turinį į masyvą

Norėdami išbandyti šio pavyzdžio scenarijų, sukurkite tekstinį failą pavadinimu „fruits.txt“ su tokiu turiniu:

vaisiai.txt

Mango

Jackfruit

Ananasas

Oranžinė

Bananas

Šiame scenarijuje failo turinys saugomas masyve pavadinimu „$data“. Čia kiekviena failo eilutė saugoma kaip kiekvienas masyvo elementas. Toliau spausdinamos masyvo reikšmės.

#!/bin/bash

#Perskaitykite vartotojo failo pavadinimą

skaityti -p 'Įveskite failo pavadinimą:' failo pavadinimas

jeigu [ -f $failo pavadinimas ]

tada

#Perskaitykite failo turinį į masyvą'

duomenis = ( ` katė $failo pavadinimas ` )

aidas 'Failo turinys pateikiamas toliau:'

# Skaitykite failą eilutė po eilutės

dėl linija in ${duomenys[@]}

daryti

aidas $ eilutė

padaryta

būti

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Išvestis, kurią rodo komanda „cat“, ir scenarijaus išvestis yra panašios, nes tą patį failą pasiekia komanda „cat“ ir scenarijus:

  8 p

Eiti į viršų

Sujunkite masyvo reikšmes

Sujungiant kelių masyvų reikšmes sukuriamas naujas masyvas. Šiame scenarijuje yra apibrėžti du skaitiniai eilučių masyvai. Tada sujungiant šių masyvų reikšmes sukuriamas naujas masyvas.

#!/bin/bash

#Deklaruoti pirmąjį masyvą

deklaruoti -a vardų sąrašas1 = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' )

aidas 'Pirmosios masyvo reikšmės yra:'

printf „%s“, ${nameList1[@]}

aidas

#Deklaruoti antrąjį masyvą

deklaruoti -a vardų sąrašas2 = ( 'Robertas' 'Ričardas' )

aidas 'Antros masyvo reikšmės yra:'

printf „%s“, ${nameList2[@]}

aidas

#Sukurkite naują masyvą sujungdami du masyvus

kombinuotas_masyvas = ( ${nameList1[@]} ${nameList2[@]} )

aidas 'Sujungtos masyvo reikšmės yra:'

printf „%s“, ${combined_array[@]}

aidas

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Čia išvestyje atspausdinamos trijų masyvų reikšmės. Trečiame masyve yra visos pirmojo ir antrojo masyvo reikšmės:

  9 p

Eiti į viršų

Pakeiskite masyvo reikšmes

Vienos ar kelių masyvo reikšmių atnaujinimo būdas paminėjus indeksą parodytas šiame scenarijuje:

#!/bin/bash

#Deklaruoti pirmąjį masyvą

deklaruoti -a vardų sarašas = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' )

aidas 'Masyvo reikšmės:'

printf „%s“, ${nameList[@]}

aidas

#Atnaujinkite 2-ąją masyvo reikšmę

vardų sarašas [ 1 ] = 'Robertas'

aidas 'Masyvo reikšmės po atnaujinimo:'

printf „%s“, ${nameList[@]}

aidas

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Išvestyje atspausdinamos pagrindinio masyvo ir atnaujintų masyvų reikšmės:

  10 p

Pašalinkite masyvo reikšmes

Komanda „nustatyti“ naudojama tam tikram elementui arba visiems masyvo elementams pašalinti. Kitame scenarijuje pašalinamas antrasis masyvo elementas.

#!/bin/bash

#Deklaruoti skaitinį masyvą

deklaruoti -a knygos = ( „Shell Scripting Tutorials“ 'Bish Bash Bosh!' „Greitai išmok Bash“ )

#Prieš pašalindami išspausdinkite masyvo reikšmes

aidas 'Masyvo reikšmės:'

printf '%s\n' ${knygos[@]}

aidas

#Pašalinkite 2-ąjį elementą

nenustatyta knygos [ 1 ]

#Pašalinus spausdinkite masyvo reikšmes

aidas „Masyvo reikšmės pašalinus 2-ąją reikšmę:“

printf '%s\n' ${knygos[@]}

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Išvestyje atspausdinamos pagrindinio masyvo reikšmės ir masyvo reikšmės pašalinus vieną reikšmę:

  11 p

Eiti į viršų

Ieškokite ir pakeiskite masyvo reikšmes

Šiame scenarijuje tam tikra masyvo reikšmė pakeičiama kita reikšme, jei šablone apibrėžta paieškos reikšmė atitinka bet kurią masyvo „$names“ reikšmę.

#!/bin/bash

#Deklaruoti pirmąjį masyvą

deklaruoti -a vardai = ( 'Michaelas' 'Deividas' 'Aleksandras' 'Tomas' )

#Atspausdinkite pradines masyvo reikšmes

aidas 'Pradinės masyvo reikšmės:'

printf '%s\n' ${names[@]}

#Sukurkite eilutę pakeitę masyvo reikšmes

atnaujintas_masyvas = ${names[@]/Aleksandras/Ričardas}

#Spausdinkite masyvo reikšmes po pakeitimo

aidas 'Masyvo reikšmės po pakeitimo:'

printf '%s\n' ${updated_array[@]}

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Pagrindinio masyvo reikšmės ir masyvo reikšmės pakeitus reikšmę išspausdinamos išvestyje:

  12 p

Eiti į viršų

Naudokite masyvą kaip funkcijos argumentą

Šiame scenarijuje masyvo kintamasis perduodamas kaip funkcijos argumentas, o to masyvo reikšmės išspausdinamos vėliau.

#!/bin/bash

#Pareikškite skaičių masyvą

deklaruoti -a numeriai = ( 10 6 Keturi. Penki 13 8 )

#Apibrėžkite funkciją, kuri paims argumento reikšmę

func ( )

{

#Perskaitykite pirmąjį argumentą

numeriai = 1 USD

#Spausdinkite masyvo reikšmes

aidas 'Masyvo reikšmės:'

printf '%d\n' ${numbers[@]}

}

# Iškvieskite funkciją naudodami masyvą kaip argumentą

func ${numbers[@]}

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis:

  13 p

Eiti į viršų

Grąžinkite masyvą iš funkcijos

Šiame scenarijuje funkcija iškviečiama keturiais skaitiniais argumentais. Sukuriamas masyvas su argumentų reikšmėmis ir tas masyvas grąžinamas iš funkcijos skambintojui.

#!/bin/bash

#Apibrėžkite funkciją, kuri nuskaito keturias argumentų reikšmes

func ( )

{

#Perskaitykite argumentų reikšmes

numeriai = ( 1 USD 2 USD 3 USD 4 USD )

#Grąžinkite masyvą

aidas ${numbers[@]}

}

# Iškvieskite funkciją su trimis argumentais

grąžinimo_val =$ ( func 78 Keturi. Penki 90 23 )

#Išsaugokite grąžinamąją reikšmę masyve

skaityti -a ant vieno <<< $return_val

#Atspausdinkite grąžinamo masyvo reikšmes

aidas 'Masyvo reikšmės yra:'

dėl in in ${num[@]}

daryti

aidas $in

padaryta

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis:

Eiti į viršų

Padarykite masyvą tuščią

Šis scenarijus parodo būdą, kaip masyvą padaryti tuščią naudojant komandą „nustatyti“. Bendras masyvo reikšmių skaičius išspausdinamas prieš ir po to, kai masyvas tuščias.

#!/bin/bash

#Pareikškite skaičių masyvą

deklaruoti -a numeriai = ( 10 6 Keturi. Penki 13 80 )

aidas 'Masyvo reikšmių skaičiai: ${#numers[@]}

#Padarykite masyvą tuščią

nenustatyta numeriai

aidas 'Masyvo reikšmių skaičius po to, kai masyvas tuščias: ${#numers[@]}

Išvestis :

Įvykdžius scenarijų pasirodo ši išvestis. Masyvo elementų skaičius tapo 0, kai masyvas buvo tuščias:

  15 p

Eiti į viršų

Išvada

Įvairūs Bash scenarijaus masyvo kintamųjų deklaravimo, prieigos, modifikavimo ir pašalinimo metodai parodyti šiame vadove naudojant 15 paprastų pavyzdžių. Tikimės, kad ši pamoka padės „Bash“ vartotojams išsamiai sužinoti apie „Bash“ masyvo naudojimą.