- Definujte pole podle indexu
- Definujte pole s více hodnotami
- Definujte asociativní pole
- Spočítejte hodnoty pole
- Přečtěte si hodnoty pole smyčkou
- Přečtěte si konkrétní hodnoty pole
- Vložte hodnoty pole
- Načtěte obsah souboru do pole
- Zkombinujte hodnoty pole
- Upravte hodnoty pole
- Odeberte hodnoty pole
- Vyhledejte a nahraďte hodnoty pole
- Použijte pole jako argument funkce
- Vraťte pole z funkce
- Vyprázdněte pole
Definujte pole podle indexu
Způsob deklarace pole uvedením sekvenčních nebo nesekvenčních číselných indexů je znázorněn v následujícím skriptu. Tento typ pole se nazývá číselné pole. Zde je pole „$books“ vytvořeno definováním tří sekvenčních indexů a pole „$products“ je vytvořeno definováním čtyř nesekvenčních indexů. Všechny hodnoty obou polí jsou vytištěny pomocí funkce „printf“.
#!/bin/bash
#Definujte index pole v sekvenčním pořadí
knihy [ 0 ] = „Učíme se bash Shell“
knihy [ 1 ] = „Operace kybernetické bezpečnosti s bash“
knihy [ 2 ] = 'Bash Command Line Pro Tipy'
echo 'Všechny hodnoty prvního pole:'
printf '%s\n' ' ${books[@]} '
#Definujte index pole v nesekvenčním pořadí
produkty [ 10 ] = 'Pero'
produkty [ 5 ] = 'Tužka'
produkty [ 9 ] = 'Rular'
produkty [ 4 ] = 'Papír velikosti A4'
echo
echo 'Všechny hodnoty druhého pole:'
printf '%s\n' ' ${products[@]} '
Výstup :
Po provedení skriptu se zobrazí následující výstup. Hodnoty obou polí jsou vytištěny ve výstupu. Pořadí indexů je udržováno v době tisku pro pole nesekvenčních indexů:
Definujte pole s více hodnotami
Číselné pole s více hodnotami lze deklarovat pomocí příkazu „declare“ s volbou -a nebo bez použití příkazu „declare“. V následujícím skriptu je první pole deklarováno pomocí příkazu „declare“ a druhé pole je vytvořeno bez použití příkazu „declare“.
#!/bin/bash
#Deklarujte číselné pole pomocí klíčového slova 'deklarovat'
prohlásit -A jména = ( 'Michael' 'David' 'Alexander' 'thomas' 'Robert' 'Richard' )
#Vytiskněte hodnoty pole
echo 'Všechny hodnoty prvního pole:'
printf '%s\n' ' ${names[@]} '
#Deklarujte číselné pole bez klíčového slova 'deklarovat'
knihy = ( „Výukové programy skriptování prostředí“ 'Bish Bash Bosh!' „Učte se Bash rychle“ )
#Přidat nový řádek
echo
#Vytiskněte hodnoty pole
echo 'Všechny hodnoty druhého pole:'
printf '%s\n' ' ${books[@]} '
Výstup :
Po provedení skriptu se zobrazí následující výstup. Hodnoty obou polí jsou vytištěny zde:
Definujte asociativní pole
Pole, které obsahuje hodnotu řetězce jako index, se nazývá asociativní pole. Volba -A se používá s příkazem „deklarovat“ v Bash k vytvoření asociativního pole Bash. V následujícím skriptu je první asociativní pole deklarováno uvedením indexů samostatně a druhé pole je deklarováno uvedením všech párů klíč-hodnota v době deklarace pole.
#!/bin/bash#Deklarujte proměnnou asociativního pole bez hodnoty
prohlásit -A zaměstnanec
#Přiřaďte hodnotu samostatně definováním indexu
zaměstnanec [ 'id' ] = '78564'
zaměstnanec [ 'název' ] = „Dostupní herci“
zaměstnanec [ 'pošta' ] = 'VÝKONNÝ ŘEDITEL'
zaměstnanec [ 'plat' ] = 300 000
#Vytiskněte dvě hodnoty pole
echo 'ID zaměstnance: ${employee[id]} '
echo 'Jméno zaměstnance: ${employee[name]} '
#Deklarujte asociativní pole s hodnotami
prohlásit -A chod = ( [ kód ] = 'CSE-206' [ název ] = 'Objektově orientované programování' [ kredit_hodina ] = 2,0 )
#Přidat nový řádek
echo
#Vytiskněte dvě hodnoty pole druhého pole
echo 'Název kurzu: ${course[name]} '
echo 'Hodina kreditu: ${course[credit_hour]} '
Výstup :
Po provedení skriptu se zobrazí následující výstup. Konkrétní hodnoty asociativního pole jsou zde vytištěny uvedením hodnoty klíče nebo indexu:
Spočítejte hodnoty pole
Způsob počítání celkových prvků číselného pole a asociativního pole je znázorněn v následujícím skriptu:
#!/bin/bash#Deklarujte číselné pole
prohlásit -A jména = ( 'Michael' 'David' 'Alexander' 'thomas' 'Robert' 'Richard' ) ;
echo 'Délka číselného pole je ${#names[@]} '
#Deklarujte asociativní pole
prohlásit -A chod = ( [ kód ] = 'CSE-206' [ název ] = 'Objektově orientované programování' [ kredit_hodina ] = 2,0 )
echo 'Délka asociativního pole je ${#course[@]} '
Výstup :
Po provedení skriptu se zobrazí následující výstup. Délka pole číselných a asociativních polí je vytištěna zde:
Přečtěte si hodnoty pole smyčkou
prohlásit -A knihy = ( „Shell Scripting Tutorials“ )
#Ocení hodnoty číselného pole
echo 'Hodnoty numerického pole jsou:'
pro v v ' '
dělat
echo ' $v '
Hotovo
echo
#Declare asociativní pole s hodnotami
prohlásit -A klientů = (
[ id ] =
[ název ] = 'Pan. Ahnaf'
[ adresa ] =
[ telefon ] = )
#Oceníte hodnoty asociativního pole
echo 'Asociativní hodnoty pole jsou:'
pro k v ' '
dělat
echo ' '
Hotovo
Výstup :
Po provedení skriptu se zobrazí následující výstup. Zde jsou ve výstupu vytištěny hodnoty číselného pole a páry klíčové hodnoty asociativního pole:
Přečtěte si konkrétní rozsah hodnot pole
Hodnoty pole konkrétního rozsahu indexů jsou uvedeny v následujícím skriptu. Ve skriptu je definováno numerické pole čtyř prvků. Dvě hodnoty pole z druhého indexu pole jsou vytištěny později.
prohlásit -A = ( 'Čokoládový dort' 'Vanilkový dort' 'Red Velvet Cake' 'jahodový koláč' )
#Oceníte konkrétní hodnoty pole
echo 'Druhé a 3. prvky hodnot pole jsou:'
printf '%s\n' ' '
Výstup :
Po provedení skriptu se zobrazí následující výstup. Druhé a třetí hodnoty pole jsou „Vanilkový dort“ a „Červený sametový dort“, které jsou vytištěny na výstupu:
Vložte hodnoty pole
Způsob přidání více hodnot na konci pole je zobrazen v následujícím skriptu. Hlavní pole, které je „$ Books“, obsahuje tři prvky a dva prvky jsou přidány na konci pole „$ Books“.
#!/bin/bash#Deklarujte číselné pole
prohlásit -A knihy = ( „Shell Scripting Tutorials“ 'Učte se Bash rychle' )
#Předvádějte hodnoty pole před vložením
echo 'Hodnoty pole:'
printf '%s\n' ' ${books[@]} '
echo
knihy = ( ' ${books[@]} ' „Linuxový příkazový řádek a skriptovací bible“ 'Průvodce pokročilým skriptováním Bash od Mendel Cooper' )
#Oceníte hodnoty pole po vložení
echo 'Posorné hodnoty po vložení dvou hodnot:'
printf '%s\n' ' ${books[@]} '
Výstup :
Po provedení skriptu se zobrazí následující výstup. Hodnoty pole před a po vložení nových hodnot jsou vytištěny do výstupu:
Přečtěte si obsah souboru do pole
Vytvořte textový soubor s názvem „Fruits.txt“ s následujícím obsahem pro testování skriptu tohoto příkladu:
Fruits.txt
MangoJackfruit
Ananas
oranžový
Banán
V následujícím skriptu je obsah souboru uložen v poli s názvem „$ data“. Zde je každý řádek souboru uložen jako každý prvek pole. Dále se vytisknou hodnoty pole.
#!/bin/bash#Přečíst název souboru od uživatele
číst -p 'Zadejte název souboru:' název souboru
-li [ -F $ název souboru ]
pak
#Načtěte obsah souboru do pole'
data = ( ' kočka ' $ název souboru ' ' )
echo „Obsah souboru je uveden níže:“
#Přečtěte soubor řádek po řádku
pro čára v ' $ {data [@]} '
dělat
echo $ linie
Hotovo
být
Výstup :
Po provedení skriptu se zobrazí následující výstup. Výstup, který je zobrazen příkazem „CAT“ a výstupem skriptu, jsou podobné, protože stejný soubor je přístupný příkazem „Cat“ a skriptem:
Kombinujte hodnoty pole
Nové pole je vytvořeno kombinací hodnot více polí. V následujícím skriptu jsou definovány dvě číselná pole řetězců. Poté je vytvořeno nové pole kombinováním hodnot těchto polí.
#!/bin/bash#Declare první pole
prohlásit -A Namelist1 = ( 'Michael' „David“ 'Alexander' 'Thomas' )
echo 'První hodnoty pole jsou:'
printf '%S,' ${nameList1[@]}
echo
#Deklarujte druhé pole
prohlásit -A jmenný seznam2 = ( 'Robert' 'Richard' )
echo 'Hodnoty druhého pole jsou:'
printf ${nameList2[@]}
echo
#Vytvořte nové pole kombinací dvou polí
kombinované_pole = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )
echo 'Spojené hodnoty pole jsou:'
printf '%s, ' ${combined_array[@]}
echo
Výstup :
Po provedení skriptu se zobrazí následující výstup. Zde jsou hodnoty tří polí vytištěny ve výstupu. Třetí pole obsahuje všechny hodnoty prvního a druhého pole:
Upravte hodnoty pole
Způsob aktualizace jedné nebo více hodnot pole uvedením indexu je znázorněn v následujícím skriptu:
#!/bin/bash#Declare první pole
prohlásit -A jmenný seznam = ( 'Michael' 'David' 'Alexander' 'thomas' )
echo 'Hodnoty pole:'
printf '%S,' $ {Namelist [@]}
echo
# Aktualizujte 2. hodnotu pole
jmenný seznam [ 1 ] = 'Robert'
echo 'Hodnoty pole po aktualizaci:'
printf '%S,' $ {Namelist [@]}
echo
Výstup :
Po provedení skriptu se zobrazí následující výstup. Hodnoty hlavního pole a aktualizovaných polí se vytisknou ve výstupu:
Odstraňte hodnoty pole
Příkaz „unset“ se používá k odstranění konkrétního prvku nebo všech prvků pole. V následujícím skriptu je odstraněn druhý prvek pole.
#!/bin/bash#Deklarujte číselné pole
prohlásit -A knihy = ( 'Výukové programy skriptování prostředí' 'Bish Bash Bosh!' 'Učte se Bash rychle' )
#Před odstraněním vytiskněte hodnoty pole
echo 'Hodnoty pole:'
printf '%s\n' ' ${books[@]} '
echo
#Odstraňte 2. prvek
odstaveno knihy [ 1 ]
# Po odstranění vytiskněte hodnoty pole
echo 'Hodnoty pole po odstranění 2. hodnoty:'
printf '%s\n' ' ${books[@]} '
Výstup :
Po provedení skriptu se zobrazí následující výstup. Hodnoty hlavního pole a hodnoty pole po odstranění jedné hodnoty se vytisknou ve výstupu:
Vyhledejte a nahraďte hodnoty pole
V následujícím skriptu je konkrétní hodnota pole nahrazena jinou hodnotou, pokud hledaná hodnota, která je definována ve vzoru, odpovídá jakékoli hodnotě pole „$names“.
#!/bin/bash#Deklarujte první pole
prohlásit -A jména = ( 'Michael' 'David' 'Alexander' 'thomas' )
# Vytiskněte původní hodnoty pole
echo 'Původní hodnoty pole:'
printf '%s\n' ' ${names[@]} '
# Po nahrazení hodnot pole vygenerujte řetězec
updated_array = ${names[@]/Alexander/Richard}
# Po nahrazení vytiskněte hodnoty pole
echo 'Hodnoty pole po nahrazení:'
printf '%s\n' ' ${updated_array[@]} '
Výstup :
Po provedení skriptu se zobrazí následující výstup. Hodnoty hlavního pole a hodnoty pole po nahrazení hodnoty se vytisknou ve výstupu:
Použijte pole jako argument funkce
V následujícím skriptu se jako argument funkce předá proměnná pole a hodnoty tohoto pole se vytisknou později.
#!/bin/bash#Deklarujte pole čísel
prohlásit -A čísla = ( 10 6 Čtyři pět 13 8 )
#Definujte funkci, která bude mít hodnotu argumentu
func ( )
{
#Přečtěte si první argument
čísla = 1 $
#Vytiskněte hodnoty pole
echo 'Hodnoty pole:'
printf '%d\n' ' ${čísla[@]} '
}
#Zavolejte funkci s polem jako argumentem
func ' ${čísla[@]} '
Výstup :
Po spuštění skriptu se zobrazí následující výstup:
Vraťte pole z funkce
V následujícím skriptu je funkce volána se čtyřmi číselnými argumenty. Vytvoří se pole s hodnotami argumentů a toto pole se vrátí z funkce volajícímu.
#!/bin/bash#Definujte funkci, která čte čtyři hodnoty argumentů
func ( )
{
#Přečtěte si hodnoty argumentů
čísla = ( 1 $ 2 $ 3 $ 4 $ )
#Vraťte pole
echo ' ${čísla[@]} '
}
#Zavolejte funkci se třemi argumenty
návratová_hodnota = $ ( func 78 Čtyři pět 90 23 )
#Uložte vrácenou hodnotu do pole
číst -A na jednom <<< $return_val
#Vytiskněte hodnoty vráceného pole
echo 'Hodnoty pole jsou:'
pro v v ' ${num[@]} '
dělat
echo ' $v '
Hotovo
Výstup :
Po spuštění skriptu se zobrazí následující výstup:
Vyprázdněte pole
Následující skript ukazuje způsob, jak vytvořit pole prázdné pomocí příkazu „unset“. Celkový počet hodnot pole se vytiskne před a po vyprázdnění pole.
#!/bin/bash#Deklarujte pole čísel
prohlásit -A čísla = ( 10 6 Čtyři pět 13 80 )
echo 'Čísla hodnot pole: ${#numbers[@]} '
#Udělejte pole prázdné
odstaveno čísla
echo 'Počet hodnot pole po vyprázdnění pole: ${#numbers[@]} '
Výstup :
Po provedení skriptu se zobrazí následující výstup. Počet prvků pole se stal 0 poté, co bylo pole prázdné:
Závěr
Různé metody deklarování, přístupu, úpravy a odstranění proměnných pole ve skriptu Bash jsou ukázány v tomto tutoriálu na 15 jednoduchých příkladech. Doufáme, že tento tutoriál pomůže uživatelům Bash podrobně poznat použití pole Bash.