Ako manipulovať a kontrolovať údaje pomocou poľa Bash

Ako Manipulovat A Kontrolovat Udaje Pomocou Pola Bash



Premenná poľa sa používa v akomkoľvek programovacom jazyku na uloženie viacerých hodnôt pomocou indexu. Index poľa môže byť číslo alebo reťazec. Pole, ktoré obsahuje číselný index, sa nazýva „numerické pole“ a pole, ktoré obsahuje hodnotu reťazca ako index, sa nazýva „asociatívne pole“. V Bash je možné vytvoriť numerické aj asociatívne polia. Metódy manipulácie a riadenia údajov poľa Bash sú podrobne znázornené na 15 príkladoch v tomto návode.

Zoznam obsahu:

  1. Definujte pole podľa indexu
  2. Definujte pole s viacerými hodnotami
  3. Definujte asociatívne pole
  4. Spočítajte hodnoty poľa
  5. Prečítajte si hodnoty poľa po slučke
  6. Prečítajte si konkrétne hodnoty poľa
  7. Vložte hodnoty poľa
  8. Prečítajte si obsah súboru do poľa
  9. Skombinujte hodnoty poľa
  10. Upravte hodnoty poľa
  11. Odstráňte hodnoty poľa
  12. Vyhľadajte a nahraďte hodnoty poľa
  13. Použite pole ako argument funkcie
  14. Vráťte pole z funkcie
  15. Vyprázdnite pole

Definujte pole podľa indexu

Spôsob deklarovania poľa uvedením sekvenčných alebo nesekvenčných číselných indexov je znázornený v nasledujúcom skripte. Tento typ poľa sa nazýva číselné pole. Tu sa pole „$books“ vytvorí definovaním troch sekvenčných indexov a pole „$products“ sa vytvorí definovaním štyroch nesekvenčných indexov. Všetky hodnoty oboch polí sú vytlačené pomocou funkcie „printf“.







#!/bin/bash

#Definujte index poľa v sekvenčnom poradí

knihy [ 0 ] = „Učíme sa bash Shell“

knihy [ 1 ] = „Operácie kybernetickej bezpečnosti s bashom“

knihy [ 2 ] = 'Bash Command Line Pro Tips'

ozvena 'Všetky hodnoty prvého poľa:'

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

#Definujte index poľa v nesekvenčnom poradí

Produkty [ 10 ] = 'pero'

Produkty [ 5 ] = 'ceruzka'

Produkty [ 9 ] = 'Rular'

Produkty [ 4 ] = 'Papier veľkosti A4'

ozvena

ozvena 'Všetky hodnoty druhého poľa:'

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

Výkon :



Po vykonaní skriptu sa zobrazí nasledujúci výstup. Hodnoty oboch polí sú vytlačené vo výstupe. Poradie indexov sa udržiava v čase tlače pre pole nesekvenčných indexov:



  p1





Prejsť na začiatok

Definujte pole s viacerými hodnotami

Číselné pole s viacerými hodnotami možno deklarovať pomocou príkazu „declare“ s voľbou -a alebo bez použitia príkazu „declare“. V nasledujúcom skripte je prvé pole deklarované pomocou príkazu „declare“ a druhé pole je vytvorené bez použitia príkazu „declare“.



#!/bin/bash

#Deklarujte číselné pole pomocou kľúčového slova „deklarovať“.

vyhlásiť -a mená = ( 'Michael' 'David' 'Alexander' 'thomas' 'Robert' 'Richard' )

# Vytlačte hodnoty poľa

ozvena 'Všetky hodnoty prvého poľa:'

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

#Deklarujte číselné pole bez kľúčového slova „deklarovať“.

knihy = ( „Výukové programy skriptovania v prostredí Shell“ 'Bish Bash Bosh!' „Učte sa rýchlo Bash“ )

#Pridať nový riadok

ozvena

# Vytlačte hodnoty poľa

ozvena 'Všetky hodnoty druhého poľa:'

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

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Hodnoty oboch polí sú vytlačené tu:

  p2

Prejsť na začiatok

Definujte asociatívne pole

Pole, ktoré obsahuje hodnotu reťazca ako index, sa nazýva asociatívne pole. Voľba -A sa používa s príkazom „declare“ v Bash na vytvorenie asociatívneho poľa Bash. V nasledujúcom skripte je prvé asociatívne pole deklarované uvedením indexov oddelene a druhé pole je deklarované uvedením všetkých párov kľúč – hodnota v čase deklarácie poľa.

#!/bin/bash

#Deklarujte premennú asociatívneho poľa bez hodnoty

vyhlásiť -A zamestnanca

#Priraďte hodnotu oddelene definovaním indexu

zamestnanca [ 'id' ] = '78564'

zamestnanca [ 'názov' ] = „Dostupní herci“

zamestnanca [ 'post' ] = „CEO“

zamestnanca [ 'plat' ] = 300 000

#Vytlačte dve hodnoty poľa

ozvena 'Identifikačné číslo zamestnanca: ${employee[id]} '

ozvena 'Meno zamestnanca: ${employee[name]} '

#Deklarujte asociatívne pole s hodnotami

vyhlásiť -A kurz = ( [ kód ] = 'CSE-206' [ názov ] = 'Objektovo orientované programovanie' [ kreditná_hodina ] = 2.0 )

#Pridať nový riadok

ozvena

#Vytlačte dve hodnoty poľa druhého poľa

ozvena 'Názov kurzu: ${course[name]} '

ozvena 'Hodina kreditu: ${course[credit_hour]} '

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Konkrétne hodnoty asociatívneho poľa sú tu vytlačené uvedením kľúča alebo hodnoty indexu:

  p3

Prejsť na začiatok

Spočítajte hodnoty poľa

Spôsob počítania celkových prvkov číselného poľa a asociatívneho poľa je znázornený v nasledujúcom skripte:

#!/bin/bash

#Deklarujte číselné pole

vyhlásiť -a mená = ( 'Michael' 'David' 'Alexander' 'thomas' 'Robert' 'Richard' ) ;

ozvena 'Dĺžka číselného poľa je ${#names[@]} '

#Deklarujte asociatívne pole

vyhlásiť -A kurz = ( [ kód ] = 'CSE-206' [ názov ] = 'Objektovo orientované programovanie' [ kreditná_hodina ] = 2.0 )

ozvena 'Dĺžka asociatívneho poľa je ${#course[@]} '

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Dĺžka poľa číselných a asociatívnych polí je vytlačená tu:

  p4

Prejsť na začiatok

Prečítajte si hodnoty poľa po slučke

Metóda čítania všetkých hodnôt číselného poľa a asociatívneho poľa pomocou cyklu „for“ je znázornená v nasledujúcom skripte:

#!/bin/bash

#Deklarujte číselné pole

vyhlásiť -a knihy = ( 'Výukové programy skriptovania v prostredí Shell' 'Bish Bash Bosh!' „Učte sa rýchlo Bash“ )

# Vytlačte hodnoty číselného poľa

ozvena 'Hodnoty číselného poľa sú:'

pre v v ' ${books[@]} '

robiť

ozvena ' $v '

hotový

ozvena

#Deklarujte asociatívne pole s hodnotami

vyhlásiť -A klientov = (

[ id ] = 'H-5623'

[ názov ] = 'Pán. Ahnaf'

[ adresu ] = '6/A, Dhanmondi, Dháka.'

[ telefón ] = '+8801975642312' )

# Vytlačte hodnoty asociatívneho poľa

ozvena 'Hodnoty asociatívneho poľa sú:'

pre k v ' ${!clients[@]} '

robiť

ozvena ' tis => ${clients[$k]} '

hotový

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Tu sú na výstupe vytlačené hodnoty číselného poľa a párov kľúč-hodnota asociatívneho poľa:

  p5

Prejsť na začiatok

Prečítajte si konkrétny rozsah hodnôt poľa

Hodnoty poľa konkrétneho rozsahu indexov sú zobrazené v nasledujúcom skripte. V skripte je definované číselné pole štyroch prvkov. Dve hodnoty poľa z druhého indexu poľa sa vytlačia neskôr.

#!/bin/bash

#Deklarujte číselné pole

vyhlásiť -a koláče = ( 'Čokoládový koláč' 'Vanilkový koláč' 'Zamatovo červený koláč' 'jahodový koláč' )

# Vytlačte konkrétne hodnoty poľa

ozvena 'Druhý a tretí prvok hodnôt poľa sú:'

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

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Druhá a tretia hodnota poľa sú „Vanilla Cake“ a „Red Velvet Cake“, ktoré sú vytlačené vo výstupe:

  p6

Prejsť na začiatok

Vložte hodnoty poľa

Spôsob pridávania viacerých hodnôt na koniec poľa je znázornený v nasledujúcom skripte. Hlavné pole, ktoré je „$books“, obsahuje tri prvky a dva prvky sú pridané na koniec poľa „$books“.

#!/bin/bash

#Deklarujte číselné pole

vyhlásiť -a knihy = ( 'Výukové programy skriptovania v prostredí Shell' 'Bish Bash Bosh!' 'Naučte sa Bash rýchlo' )

# Pred vložením vytlačte hodnoty poľa

ozvena 'Hodnoty poľa:'

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

ozvena

knihy = ( ' ${books[@]} ' 'Linuxový príkazový riadok a skriptovacia biblia Shell' 'Pokročilá príručka skriptovania Bash od Mendela Coopera' )

# Po vložení vytlačte hodnoty poľa

ozvena 'Hodnoty poľa po vložení dvoch hodnôt:'

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

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Hodnoty poľa pred a po vložení nových hodnôt sa vytlačia na výstup:

  p7

Prejsť na začiatok

Prečítajte si obsah súboru do poľa

Ak chcete otestovať skript z tohto príkladu, vytvorte textový súbor s názvom „fruits.txt“ s nasledujúcim obsahom:

ovocie.txt

Mango

Jackfruit

Ananás

Oranžová

Banán

V nasledujúcom skripte je obsah súboru uložený v poli s názvom „$data“. Tu je každý riadok súboru uložený ako každý prvok poľa. Ďalej sa vytlačia hodnoty poľa.

#!/bin/bash

#Prečítajte si názov súboru od používateľa

čítať -p 'Zadajte názov súboru:' názov súboru

ak [ -f $filename ]

potom

#Prečítajte obsah súboru do poľa'

údajov = ( ` kat ' $filename ' ` )

ozvena 'Obsah súboru je uvedený nižšie:'

# Prečítajte si súbor riadok po riadku

pre riadok v ' ${data[@]} '

robiť

ozvena $line

hotový

byť

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Výstup, ktorý zobrazuje príkaz „cat“ a výstup skriptu, sú podobné, pretože príkaz „cat“ a skript sprístupňujú rovnaký súbor:

  p8

Prejsť na začiatok

Skombinujte hodnoty poľa

Nové pole sa vytvorí spojením hodnôt viacerých polí. V nasledujúcom skripte sú definované dve číselné polia reťazcov. Potom sa vytvorí nové pole spojením hodnôt týchto polí.

#!/bin/bash

#Deklarujte prvé pole

vyhlásiť -a zoznam mien1 = ( 'Michael' 'David' 'Alexander' 'thomas' )

ozvena 'Prvé hodnoty poľa sú:'

printf '%s, ' ${nameList1[@]}

ozvena

#Deklarujte druhé pole

vyhlásiť -a zoznam mien2 = ( 'Robert' 'Richard' )

ozvena 'Hodnoty druhého poľa sú:'

printf '%s, ' ${nameList2[@]}

ozvena

#Vytvorte nové pole spojením dvoch polí

kombinované_pole = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )

ozvena 'Hodnoty kombinovaného poľa sú:'

printf '%s, ' ${combined_array[@]}

ozvena

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Tu sú na výstupe vytlačené hodnoty troch polí. Tretie pole obsahuje všetky hodnoty prvého a druhého poľa:

  p9

Prejsť na začiatok

Upravte hodnoty poľa

Spôsob aktualizácie jednej alebo viacerých hodnôt poľa uvedením indexu je znázornený v nasledujúcom skripte:

#!/bin/bash

#Deklarujte prvé pole

vyhlásiť -a zoznam mien = ( 'Michael' 'David' 'Alexander' 'thomas' )

ozvena 'Hodnoty poľa:'

printf '%s, ' ${nameList[@]}

ozvena

# Aktualizujte 2. hodnotu poľa

zoznam mien [ 1 ] = 'Robert'

ozvena 'Hodnoty poľa po aktualizácii:'

printf '%s, ' ${nameList[@]}

ozvena

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Hodnoty hlavného poľa a aktualizovaných polí sa vytlačia vo výstupe:

  p10

Odstráňte hodnoty poľa

Príkaz „unset“ sa používa na odstránenie konkrétneho prvku alebo všetkých prvkov poľa. V nasledujúcom skripte sa odstráni druhý prvok poľa.

#!/bin/bash

#Deklarujte číselné pole

vyhlásiť -a knihy = ( 'Výukové programy skriptovania v prostredí Shell' 'Bish Bash Bosh!' 'Naučte sa Bash rýchlo' )

# Pred odstránením vytlačte hodnoty poľa

ozvena 'Hodnoty poľa:'

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

ozvena

#Odstráňte 2. prvok

odstaviť knihy [ 1 ]

# Po odstránení vytlačte hodnoty poľa

ozvena 'Hodnoty poľa po odstránení 2. hodnoty:'

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

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Hodnoty hlavného poľa a hodnoty poľa po odstránení jednej hodnoty sa vytlačia vo výstupe:

  p11

Prejsť na začiatok

Vyhľadajte a nahraďte hodnoty poľa

V nasledujúcom skripte je konkrétna hodnota poľa nahradená inou hodnotou, ak sa hľadaná hodnota, ktorá je definovaná vo vzore, zhoduje s akoukoľvek hodnotou poľa „$names“.

#!/bin/bash

#Deklarujte prvé pole

vyhlásiť -a mená = ( 'Michael' 'David' 'Alexander' 'thomas' )

# Vytlačte pôvodné hodnoty poľa

ozvena 'Pôvodné hodnoty poľa:'

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

# Po nahradení hodnôt poľa vygenerujte reťazec

updated_array = ${names[@]/Alexander/Richard}

# Po výmene vytlačte hodnoty poľa

ozvena 'Hodnoty poľa po nahradení:'

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

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Hodnoty hlavného poľa a hodnoty poľa po nahradení hodnoty sa vytlačia vo výstupe:

  p12

Prejsť na začiatok

Použite pole ako argument funkcie

V nasledujúcom skripte sa premenná poľa odovzdá ako argument funkcie a hodnoty tohto poľa sa vytlačia neskôr.

#!/bin/bash

#Deklarujte pole čísel

vyhlásiť -a čísla = ( 10 6 Štyri, päť 13 8 )

#Definujte funkciu, ktorá bude mať hodnotu argumentu

func ( )

{

#Prečítaj si prvý argument

čísla = 1 dolár

# Vytlačte hodnoty poľa

ozvena 'Hodnoty poľa:'

printf '%d\n' ' ${čísla[@]} '

}

#Zavolajte funkciu s poľom ako argumentom

func ' ${čísla[@]} '

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup:

  p13

Prejsť na začiatok

Vráťte pole z funkcie

V nasledujúcom skripte sa funkcia volá so štyrmi číselnými argumentmi. Vytvorí sa pole s hodnotami argumentov a toto pole sa vráti z funkcie volajúcemu.

#!/bin/bash

#Definujte funkciu, ktorá číta štyri hodnoty argumentov

func ( )

{

#Prečítajte si hodnoty argumentov

čísla = ( 1 dolár 2 doláre 3 doláre 4 doláre )

#Vráťte pole

ozvena ' ${čísla[@]} '

}

#Zavolajte funkciu s tromi argumentmi

návratová_hodnota = $ ( func 78 Štyri, päť 90 23 )

#Uložte návratovú hodnotu do poľa

čítať -a na jeden <<< $return_val

#Vytlačte hodnoty vráteného poľa

ozvena 'Hodnoty poľa sú:'

pre v v ' ${num[@]} '

robiť

ozvena ' $v '

hotový

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup:

Prejsť na začiatok

Vyprázdnite pole

Nasledujúci skript ukazuje spôsob, ako urobiť pole prázdne pomocou príkazu „unset“. Celkový počet hodnôt poľa sa vytlačí pred a po vyprázdnení poľa.

#!/bin/bash

#Deklarujte pole čísel

vyhlásiť -a čísla = ( 10 6 Štyri, päť 13 80 )

ozvena 'Počet hodnôt poľa: ${#numbers[@]} '

# Nechajte pole prázdne

odstaviť čísla

ozvena 'Počet hodnôt poľa po vyprázdnení poľa: ${#numbers[@]} '

Výkon :

Po vykonaní skriptu sa zobrazí nasledujúci výstup. Po vyprázdnení poľa sa počet prvkov poľa stal 0:

  p15

Prejsť na začiatok

Záver

Rôzne metódy deklarovania, prístupu, úpravy a odstraňovania premenných poľa v skripte Bash sú znázornené v tomto návode na 15 jednoduchých príkladoch. Dúfame, že tento tutoriál pomôže používateľom Bash podrobne poznať použitie poľa Bash.