Jak manipulować danymi i je kontrolować za pomocą tablicy Bash

Jak Manipulowac Danymi I Je Kontrolowac Za Pomoca Tablicy Bash



Zmienna tablicowa jest używana w dowolnym języku programowania do przechowywania wielu wartości za pomocą indeksu. Indeks tablicy może być liczbą lub ciągiem znaków. Tablica zawierająca indeks numeryczny nazywana jest „tablicą numeryczną”, a tablica zawierająca wartość ciągu jako indeks nazywana jest „tablicą asocjacyjną”. W Bash można tworzyć zarówno tablice numeryczne, jak i asocjacyjne. Metody manipulowania i kontrolowania danych tablicy Bash zostały szczegółowo pokazane na 15 przykładach w tym samouczku.

Lista treści:

  1. Zdefiniuj tablicę według indeksu
  2. Zdefiniuj tablicę z wieloma wartościami
  3. Zdefiniuj tablicę asocjacyjną
  4. Policz wartości tablicy
  5. Przeczytaj wartości tablicy za pomocą pętli
  6. Przeczytaj poszczególne wartości tablicy
  7. Wstaw wartości tablicy
  8. Wczytaj zawartość pliku do tablicy
  9. Połącz wartości tablicy
  10. Zmodyfikuj wartości tablicy
  11. Usuń wartości tablicy
  12. Wyszukaj i zamień wartości tablicy
  13. Użyj tablicy jako argumentu funkcji
  14. Zwróć tablicę z funkcji
  15. Spraw, aby tablica była pusta

Zdefiniuj tablicę według indeksu

Metodę deklarowania tablicy poprzez podanie sekwencyjnych lub niesekwencyjnych indeksów liczbowych pokazano w poniższym skrypcie. Ten typ tablicy nazywany jest tablicą numeryczną. Tutaj tablica „$books” jest tworzona poprzez zdefiniowanie trzech indeksów sekwencyjnych, a tablica „$products” jest tworzona poprzez definiowanie czterech indeksów niesekwencyjnych. Wszystkie wartości obu tablic zostaną wydrukowane za pomocą funkcji „printf”.







#!/bin/bash

#Zdefiniuj indeks tablicy w kolejności

książki [ 0 ] = „Nauka powłoki bash”

książki [ 1 ] = „Opcje cyberbezpieczeństwa z bashem”

książki [ 2 ] = „Wskazówki dotyczące linii poleceń Bash Pro”

Echo „Wszystkie wartości pierwszej tablicy:”

drukuj „%s\n” ' ${książki[@]} '

#Zdefiniuj indeks tablicy w kolejności niesekwencyjnej

produkty [ 10 ] = 'Długopis'

produkty [ 5 ] = 'Ołówek'

produkty [ 9 ] = „Regularny”

produkty [ 4 ] = „Papier formatu A4”

Echo

Echo „Wszystkie wartości drugiej tablicy:”

drukuj „%s\n” ' ${produkty[@]} '

Wyjście :



Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Wartości obu tablic są wypisywane na wyjściu. Kolejność indeksów jest zachowywana w momencie drukowania dla tablicy indeksów niesekwencyjnych:



  p1





Idź na górę

Zdefiniuj tablicę z wieloma wartościami

Tablicę numeryczną z wieloma wartościami można zadeklarować za pomocą polecenia „declare” z opcją -a lub bez użycia polecenia „declare”. W poniższym skrypcie pierwsza tablica jest deklarowana za pomocą polecenia „declare”, a druga tablica jest tworzona bez użycia polecenia „declare”.



#!/bin/bash

#Zadeklaruj tablicę numeryczną za pomocą słowa kluczowego „deklaruj”.

ogłosić -A nazwy = ( 'Michael' „Dawid” „Aleksander” 'Tomasz' „Robert” „Ryszard” )

#Wydrukuj wartości tablicy

Echo „Wszystkie wartości pierwszej tablicy:”

drukuj „%s\n” ' ${imiona[@]} '

#Zadeklaruj tablicę numeryczną bez słowa kluczowego „deklaruj”.

książki = ( „Poradniki dotyczące skryptów powłoki” „Bish Bash Bosh!” „Szybko naucz się Basha” )

#Dodaj nową linię

Echo

#Wydrukuj wartości tablicy

Echo „Wszystkie wartości drugiej tablicy:”

drukuj „%s\n” ' ${książki[@]} '

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Wartości obu tablic są drukowane tutaj:

  p2

Idź na górę

Zdefiniuj tablicę asocjacyjną

Tablica zawierająca wartość ciągu jako indeks nazywana jest tablicą asocjacyjną. Opcja -A jest używana z poleceniem „deklaruj” w Bash, aby utworzyć asocjacyjną tablicę Bash. W poniższym skrypcie pierwsza tablica asocjacyjna jest deklarowana poprzez osobne podanie indeksów, a druga tablica jest deklarowana poprzez podanie wszystkich par klucz-wartość w momencie deklaracji tablicy.

#!/bin/bash

#Zadeklaruj zmienną tablicy asocjacyjnej bez wartości

ogłosić -A pracownik

#Przypisz wartość osobno, definiując indeks

pracownik [ 'ID' ] = „78564”

pracownik [ 'nazwa' ] = „Dostępni aktorzy”

pracownik [ 'post' ] = „CEO”

pracownik [ 'wynagrodzenie' ] = 300 000

#Wydrukuj dwie wartości tablicy

Echo 'Dowód pracownika: ${pracownik[id]} '

Echo 'Imię i nazwisko pracownika: ${pracownik[imię]} '

#Zadeklaruj tablicę asocjacyjną z wartościami

ogłosić -A kurs = ( [ kod ] = „CSE-206” [ nazwa ] = „Programowanie obiektowe” [ Godzina kredytowa ] = 2.0 )

#Dodaj nową linię

Echo

#Wydrukuj dwie wartości tablicy drugiej tablicy

Echo „Nazwa kursu: ${kurs[nazwa]} '

Echo 'Godzina kredytowa: ${kurs[credit_hour]} '

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Poszczególne wartości tablicy asocjacyjnej są tutaj drukowane poprzez podanie wartości klucza lub indeksu:

  p3

Idź na górę

Policz wartości tablicy

Sposób zliczania sumy elementów tablicy numerycznej i tablicy asocjacyjnej pokazano w poniższym skrypcie:

#!/bin/bash

#Zadeklaruj tablicę numeryczną

ogłosić -A nazwy = ( 'Michael' „Dawid” „Aleksander” 'Tomasz' „Robert” „Ryszard” ) ;

Echo „Długość tablicy numerycznej wynosi ${#imiona[@]} '

#Zadeklaruj tablicę asocjacyjną

ogłosić -A kurs = ( [ kod ] = „CSE-206” [ nazwa ] = „Programowanie obiektowe” [ Godzina kredytowa ] = 2.0 )

Echo „Długość tablicy asocjacyjnej wynosi ${#kurs[@]} '

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Długość tablicy numerycznej i asocjacyjnej jest drukowana tutaj:

  p4

Idź na górę

Przeczytaj wartości tablicy za pomocą pętli

Sposób odczytywania wszystkich wartości tablicy numerycznej i tablicy asocjacyjnej za pomocą pętli „for” przedstawia poniższy skrypt:

#!/bin/bash

#Zadeklaruj tablicę numeryczną

ogłosić -A książki = ( „Poradniki dotyczące skryptów powłoki” „Bish Bash Bosh!” „Szybko naucz się Basha” )

#Wydrukuj wartości tablicy numerycznej

Echo „Wartości tablicy numerycznej to:”

Do W W ' ${książki[@]} '

Do

Echo ' $w '

zrobione

Echo

#Zadeklaruj tablicę asocjacyjną z wartościami

ogłosić -A klienci = (

[ ID ] = „H-5623”

[ nazwa ] = 'Pan. Ahnaf”

[ adres ] = „6/A, Dhanmondi, Dhaka”.

[ telefon ] = '+8801975642312' )

#Wydrukuj wartości tablicy asocjacyjnej

Echo „Wartości tablicy asocjacyjnej to:”

Do k W ' ${!klienci[@]} '

Do

Echo ' tys. $ => ${klienci[$k]} '

zrobione

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Tutaj na wyjściu wypisywane są wartości tablicy numerycznej i par klucz-wartość tablicy asocjacyjnej:

  p5

Idź na górę

Przeczytaj konkretny zakres wartości tablicy

Wartości tablicy określonego zakresu indeksów pokazano w poniższym skrypcie. W skrypcie zdefiniowana jest tablica numeryczna złożona z czterech elementów. Dwie wartości tablicy z drugiego indeksu tablicy zostaną wydrukowane później.

#!/bin/bash

#Zadeklaruj tablicę numeryczną

ogłosić -A ciastka = ( 'Ciasto czekoladowe' 'Ciasto waniliowe' „Ciasto z czerwonego aksamitu” 'ciasto truskawkowe' )

#Wydrukuj poszczególne wartości tablicy

Echo „Drugi i trzeci element wartości tablicy to:”

drukuj „%s\n” ' ${ciasta[@]:1:2} '

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Druga i trzecia wartość tablicy to „Ciasto waniliowe” i „Ciasto czerwonego aksamitu”, które zostaną wydrukowane na wyjściu:

  str. 6

Idź na górę

Wstaw wartości tablicy

Metodę dodawania wielu wartości na końcu tablicy pokazano w poniższym skrypcie. Główna tablica „$books” zawiera trzy elementy, a na końcu tablicy „$books” dodane są dwa elementy.

#!/bin/bash

#Zadeklaruj tablicę numeryczną

ogłosić -A książki = ( „Poradniki dotyczące skryptów powłoki” „Bish Bash Bosh!” „Szybko naucz się Basha” )

#Wydrukuj wartości tablicy przed wstawieniem

Echo „Wartości tablicy:”

drukuj „%s\n” ' ${książki[@]} '

Echo

książki = ( ' ${książki[@]} ' „Wiersz poleceń systemu Linux i Biblia skryptów powłoki” „Zaawansowany przewodnik po skryptach Bash autorstwa Mendela Coopera” )

#Wydrukuj wartości tablicy po wstawieniu

Echo „Wartości tablicy po wstawieniu dwóch wartości:”

drukuj „%s\n” ' ${książki[@]} '

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Wartości tablicy przed i po wstawieniu nowych wartości są wypisywane na wyjściu:

  p7

Idź na górę

Wczytaj zawartość pliku do tablicy

Utwórz plik tekstowy o nazwie „fruits.txt” z następującą zawartością, aby przetestować skrypt w tym przykładzie:

owoce.txt

Mango

Chlebowiec różnolistny

Ananas

Pomarańczowy

Banan

W poniższym skrypcie zawartość pliku jest przechowywana w tablicy o nazwie „$data”. Tutaj każda linia pliku jest przechowywana jako każdy element tablicy. Następnie drukowane są wartości tablicy.

#!/bin/bash

#Odczytaj nazwę pliku od użytkownika

Czytać -P „Wprowadź nazwę pliku:” Nazwa pliku

Jeśli [ -F $nazwa pliku ]

Następnie

#Przeczytaj zawartość pliku do tablicy'

dane = ( ` kot ' $nazwa pliku ' ` )

Echo „Zawartość pliku znajduje się poniżej:”

#Przeczytaj plik linia po linii

Do linia W ' ${dane[@]} '

Do

Echo $linia

zrobione

Być

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Dane wyjściowe wyświetlane przez polecenie „cat” i dane wyjściowe skryptu są podobne, ponieważ dostęp do tego samego pliku można uzyskać za pomocą polecenia „cat” i skryptu:

  str. 8

Idź na górę

Połącz wartości tablicy

Nowa tablica jest tworzona przez połączenie wartości wielu tablic. W poniższym skrypcie zdefiniowano dwie tablice numeryczne ciągów znaków. Następnie tworzona jest nowa tablica poprzez połączenie wartości tych tablic.

#!/bin/bash

#Zadeklaruj pierwszą tablicę

ogłosić -A nazwaLista1 = ( 'Michael' „Dawid” „Aleksander” 'Tomasz' )

Echo „Pierwsze wartości tablicy to:”

drukuj '%S, ' ${nameList1[@]}

Echo

#Zadeklaruj drugą tablicę

ogłosić -A nazwaLista2 = ( „Robert” „Ryszard” )

Echo „Drugie wartości tablicy to:”

drukuj '%S, ' ${nameList2[@]}

Echo

#Utwórz nową tablicę, łącząc dwie tablice

połączona_tablica = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )

Echo „Połączone wartości tablicy to:”

drukuj '%S, ' ${połączona_tablica[@]}

Echo

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. W tym przypadku na wyjściu wypisywane są wartości trzech tablic. Trzecia tablica zawiera wszystkie wartości pierwszej i drugiej tablicy:

  s. 9

Idź na górę

Zmodyfikuj wartości tablicy

Metodę aktualizacji jednej lub większej liczby wartości tablicy poprzez wzmiankę o indeksie pokazano w następującym skrypcie:

#!/bin/bash

#Zadeklaruj pierwszą tablicę

ogłosić -A Lista imion = ( 'Michael' „Dawid” „Aleksander” 'Tomasz' )

Echo „Wartości tablicy:”

drukuj '%S, ' ${lista nazw[@]}

Echo

#Zaktualizuj drugą wartość tablicy

Lista imion [ 1 ] = „Robert”

Echo „Wartości tablicy po aktualizacji:”

drukuj '%S, ' ${lista nazw[@]}

Echo

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Wartości głównej tablicy i zaktualizowanych tablic są wypisywane na wyjściu:

  s. 10

Usuń wartości tablicy

Polecenie „unset” służy do usunięcia konkretnego elementu lub wszystkich elementów tablicy. W poniższym skrypcie drugi element tablicy został usunięty.

#!/bin/bash

#Zadeklaruj tablicę numeryczną

ogłosić -A książki = ( „Poradniki dotyczące skryptów powłoki” „Bish Bash Bosh!” „Szybko naucz się Basha” )

#Wydrukuj wartości tablicy przed usunięciem

Echo „Wartości tablicy:”

drukuj „%s\n” ' ${książki[@]} '

Echo

#Usuń drugi element

nieoprawny książki [ 1 ]

#Wydrukuj wartości tablicy po usunięciu

Echo „Wartości tablicy po usunięciu drugiej wartości:”

drukuj „%s\n” ' ${książki[@]} '

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Na wyjściu wypisywane są wartości tablicy głównej oraz wartości tablicy po usunięciu jednej wartości:

  s. 11

Idź na górę

Wyszukaj i zamień wartości tablicy

W poniższym skrypcie konkretna wartość tablicy jest zastępowana inną wartością, jeśli wartość wyszukiwania zdefiniowana we wzorcu zostanie dopasowana do dowolnej wartości tablicy „$names”.

#!/bin/bash

#Zadeklaruj pierwszą tablicę

ogłosić -A nazwy = ( 'Michael' „Dawid” „Aleksander” 'Tomasz' )

#Wydrukuj oryginalne wartości tablicy

Echo „Oryginalne wartości tablicy:”

drukuj „%s\n” ' ${imiona[@]} '

#Generuj ciąg znaków po zastąpieniu wartości tablicy

zaktualizowana tablica = ${names[@]/Alexander/Richard}

#Wydrukuj wartości tablicy po zamianie

Echo „Wartości tablicy po zamianie:”

drukuj „%s\n” ' ${updated_array[@]} '

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Na wyjściu wypisywane są wartości tablicy głównej oraz wartości tablicy po zastąpieniu wartości:

  s. 12

Idź na górę

Użyj tablicy jako argumentu funkcji

W poniższym skrypcie zmienna tablicowa jest przekazywana jako argument funkcji, a wartości tej tablicy są później drukowane.

#!/bin/bash

#Zadeklaruj tablicę liczb

ogłosić -A liczby = ( 10 6 Cztery pięć 13 8 )

#Zdefiniuj funkcję, która będzie przyjmować wartość argumentu

funk ( )

{

#Przeczytaj pierwszy argument

liczby = 1 $

#Wydrukuj wartości tablicy

Echo „Wartości tablicy:”

drukuj '%d\n' ' ${numery[@]} '

}

#Wywołaj funkcję z tablicą jako argumentem

funk ' ${numery[@]} '

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe:

  s. 13

Idź na górę

Zwróć tablicę z funkcji

W poniższym skrypcie funkcja jest wywoływana z czterema argumentami numerycznymi. Tworzona jest tablica z wartościami argumentów, która jest zwracana przez funkcję do osoby wywołującej.

#!/bin/bash

#Zdefiniuj funkcję odczytującą cztery wartości argumentów

funk ( )

{

#Przeczytaj wartości argumentów

liczby = ( 1 $ 2 dolary 3 dolary 4 dolary )

#Zwróć tablicę

Echo ' ${numery[@]} '

}

#Wywołaj funkcję z trzema argumentami

wartość_powrotu =$ ( funk 78 Cztery pięć 90 23 )

#Zapisz zwracaną wartość w tablicy

Czytać -A na jednego <<< $wartość_powrotu

#Wydrukuj wartości zwróconej tablicy

Echo „Wartości tablicy to:”

Do W W ' ${num[@]} '

Do

Echo ' $w '

zrobione

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe:

Idź na górę

Spraw, aby tablica była pusta

Poniższy skrypt pokazuje metodę opróżniania tablicy za pomocą polecenia „unset”. Całkowita liczba wartości tablicy jest drukowana przed i po opróżnieniu tablicy.

#!/bin/bash

#Zadeklaruj tablicę liczb

ogłosić -A liczby = ( 10 6 Cztery pięć 13 80 )

Echo „Liczby wartości tablicy: ${#numery[@]} '

#Uczyń tablicę pustą

nieoprawny liczby

Echo „Liczba wartości tablicy po opróżnieniu tablicy: ${#numery[@]} '

Wyjście :

Po wykonaniu skryptu pojawiają się następujące dane wyjściowe. Po opróżnieniu tablicy liczba elementów tablicy osiągnęła 0:

  s. 15

Idź na górę

Wniosek

W tym samouczku na 15 prostych przykładach pokazano różne metody deklarowania, uzyskiwania dostępu, modyfikowania i usuwania zmiennych tablicowych w skrypcie Bash. Mamy nadzieję, że ten samouczek pomoże użytkownikom Bash szczegółowo poznać zastosowania tablicy Bash.