- Definujte pole podľa indexu
- Definujte pole s viacerými hodnotami
- Definujte asociatívne pole
- Spočítajte hodnoty poľa
- Prečítajte si hodnoty poľa po slučke
- Prečítajte si konkrétne hodnoty poľa
- Vložte hodnoty poľa
- Prečítajte si obsah súboru do poľa
- Skombinujte hodnoty poľa
- Upravte hodnoty poľa
- Odstráňte hodnoty poľa
- Vyhľadajte a nahraďte hodnoty poľa
- Použite pole ako argument funkcie
- Vráťte pole z funkcie
- 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:
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:
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:
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:
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:
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:
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:
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
MangoJackfruit
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:
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:
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:
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:
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:
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:
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:
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:
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.