Jak manipulovat a ovládat data pomocí Bash Array

Jak Manipulovat A Ovladat Data Pomoci Bash Array



Proměnná pole se používá v jakémkoli programovacím jazyce k uložení více hodnot pomocí indexu. Index pole může být číslo nebo řetězec. Pole, které obsahuje číselný index, se nazývá „numerické pole“ a pole, které obsahuje hodnotu řetězce jako index, se nazývá „asociativní pole“. V Bash lze vytvořit jak numerická, tak asociativní pole. Metody manipulace a řízení dat pole Bash jsou podrobně ukázány na 15 příkladech v tomto tutoriálu.

Seznam obsahu:

  1. Definujte pole podle indexu
  2. Definujte pole s více hodnotami
  3. Definujte asociativní pole
  4. Spočítejte hodnoty pole
  5. Přečtěte si hodnoty pole smyčkou
  6. Přečtěte si konkrétní hodnoty pole
  7. Vložte hodnoty pole
  8. Načtěte obsah souboru do pole
  9. Zkombinujte hodnoty pole
  10. Upravte hodnoty pole
  11. Odeberte hodnoty pole
  12. Vyhledejte a nahraďte hodnoty pole
  13. Použijte pole jako argument funkce
  14. Vraťte pole z funkce
  15. 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ů:



  p1





Přejít nahoru

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:

  p2

Přejít nahoru

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:

  p3

Přejít nahoru

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:

  p4

Přejít nahoru

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:

  p5

Přejít nahoru

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:

  p6

Přejít nahoru

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:

  p7

Přejít nahoru

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

Mango

Jackfruit

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:

  p8

Přejít nahoru

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:

  p9

Přejít nahoru

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:

  p10

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:

  p11

Přejít nahoru

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:

  p12

Přejít nahoru

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:

  p13

Přejít nahoru

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:

Přejít nahoru

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é:

  p15

Přejít nahoru

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.