So manipulieren und steuern Sie Daten mit dem Bash-Array

So Manipulieren Und Steuern Sie Daten Mit Dem Bash Array



Eine Array-Variable wird in jeder Programmiersprache verwendet, um mehrere Werte mithilfe eines Index zu speichern. Der Array-Index kann eine Zahl oder eine Zeichenfolge sein. Das Array, das den numerischen Index enthält, wird „numerisches Array“ genannt und das Array, das den Zeichenfolgewert als Index enthält, wird „assoziatives Array“ genannt. In Bash können sowohl numerische als auch assoziative Arrays erstellt werden. Die Methoden zur Manipulation und Steuerung der Daten des Bash-Arrays werden in diesem Tutorial anhand von 15 Beispielen ausführlich gezeigt.

Inhaltsangabe:

  1. Definieren Sie ein Array nach Index
  2. Definieren Sie ein Array mit mehreren Werten
  3. Definieren Sie ein assoziatives Array
  4. Zählen Sie die Array-Werte
  5. Lesen Sie die Array-Werte per Schleife
  6. Lesen Sie die besonderen Werte des Arrays
  7. Fügen Sie die Array-Werte ein
  8. Liest einen Dateiinhalt in das Array ein
  9. Kombinieren Sie die Array-Werte
  10. Ändern Sie die Array-Werte
  11. Entfernen Sie die Array-Werte
  12. Suchen und ersetzen Sie die Array-Werte
  13. Verwenden Sie ein Array als Funktionsargument
  14. Gibt das Array von der Funktion zurück
  15. Machen Sie das Array leer

Definieren Sie ein Array nach Index

Die Methode zum Deklarieren eines Arrays durch Angabe der sequentiellen oder nicht sequentiellen numerischen Indizes wird im folgenden Skript gezeigt. Diese Art von Array wird als numerisches Array bezeichnet. Hier wird das Array „$books“ durch die Definition von drei aufeinanderfolgenden Indizes erstellt und das Array „$products“ durch die Definition von vier nicht aufeinanderfolgenden Indizes. Alle Werte beider Arrays werden mit der Funktion „printf“ gedruckt.







#!/bin/bash

#Array-Index in sequentieller Reihenfolge definieren

Bücher [ 0 ] = „Die Bash-Shell lernen“

Bücher [ 1 ] = „Cybersicherheitseinsätze mit Bash“

Bücher [ 2 ] = „Bash-Befehlszeilen-Profi-Tipps“

Echo „Alle Werte des ersten Arrays:“

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

#Array-Index in nicht sequentieller Reihenfolge definieren

Produkte [ 10 ] = 'Stift'

Produkte [ 5 ] = 'Bleistift'

Produkte [ 9 ] = „Rulär“

Produkte [ 4 ] = „Papier im A4-Format“

Echo

Echo „Alle Werte des zweiten Arrays:“

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

Ausgabe :



Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die Werte beider Arrays werden in der Ausgabe ausgegeben. Die Indexreihenfolge wird zum Zeitpunkt des Druckens für das Array nichtsequentieller Indizes beibehalten:



  p1





Zur Spitze gehen

Definieren Sie ein Array mit mehreren Werten

Ein numerisches Array mit mehreren Werten kann mit dem Befehl „declare“ mit der Option -a oder ohne Verwendung des Befehls „declare“ deklariert werden. Im folgenden Skript wird das erste Array mit dem Befehl „declare“ deklariert und das zweite Array ohne Verwendung des Befehls „declare“ erstellt.



#!/bin/bash

#Deklarieren Sie ein numerisches Array mit dem Schlüsselwort „declare“.

erklären -A Namen = ( „Michael“ 'David' 'Alexander' 'Thomas' 'Robert' 'Richard' )

#Drucken Sie die Array-Werte

Echo „Alle Werte des ersten Arrays:“

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

#Deklarieren Sie ein numerisches Array ohne das Schlüsselwort „declare“.

Bücher = ( „Shell-Scripting-Tutorials“ „Bish Bash Bosh!“ „Bash schnell lernen“ )

#Neue Zeile hinzufügen

Echo

#Drucken Sie die Array-Werte

Echo „Alle Werte des zweiten Arrays:“

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

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die Werte beider Arrays werden hier gedruckt:

  p2

Zur Spitze gehen

Definieren Sie ein assoziatives Array

Das Array, das den String-Wert als Index enthält, wird als assoziatives Array bezeichnet. Die Option -A wird mit dem Befehl „declare“ in Bash verwendet, um ein assoziatives Bash-Array zu erstellen. Im folgenden Skript wird das erste assoziative Array durch separate Angabe der Indizes deklariert und das zweite Array durch Angabe aller Schlüssel-Wert-Paare zum Zeitpunkt der Array-Deklaration.

#!/bin/bash

#Deklarieren Sie eine assoziative Array-Variable ohne Wert

erklären -A Mitarbeiter

#Weisen Sie den Wert separat zu, indem Sie den Index definieren

Mitarbeiter [ 'Ausweis' ] = '78564'

Mitarbeiter [ 'Name' ] = „Verfügbarer Schauspieler“

Mitarbeiter [ 'Post' ] = 'CEO'

Mitarbeiter [ 'Gehalt' ] = 300000

#Drucken Sie zwei Werte des Arrays

Echo 'Angestellten ID: ${mitarbeiter[id]} '

Echo 'Mitarbeitername: ${Mitarbeiter[Name]} '

#Deklarieren Sie ein assoziatives Array mit Werten

erklären -A Kurs = ( [ Code ] = 'CSE-206' [ Name ] = 'Objekt orientierte Programmierung' [ Kreditstunde ] = 2,0 )

#Neue Zeile hinzufügen

Echo

#Drucken Sie zwei Array-Werte des zweiten Arrays

Echo 'Kursname: ${Kurs[Name]} '

Echo „Kreditstunde: ${course[credit_hour]} '

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die jeweiligen Werte des assoziativen Arrays werden hier durch Angabe des Schlüssel- oder Indexwerts gedruckt:

  p3

Zur Spitze gehen

Zählen Sie die Array-Werte

Die Methode zum Zählen der Gesamtelemente des numerischen Arrays und des assoziativen Arrays wird im folgenden Skript gezeigt:

#!/bin/bash

#Deklarieren Sie ein numerisches Array

erklären -A Namen = ( „Michael“ 'David' 'Alexander' 'Thomas' 'Robert' 'Richard' ) ;

Echo „Die Länge des numerischen Arrays beträgt ${#Namen[@]} '

#Deklarieren Sie ein assoziatives Array

erklären -A Kurs = ( [ Code ] = 'CSE-206' [ Name ] = 'Objekt orientierte Programmierung' [ Kreditstunde ] = 2,0 )

Echo „Die Länge des assoziativen Arrays beträgt ${#course[@]} '

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die Array-Länge der numerischen und assoziativen Arrays wird hier gedruckt:

  S. 4

Zur Spitze gehen

Lesen Sie die Array-Werte per Schleife

Die Methode zum Lesen aller Werte eines numerischen Arrays und eines assoziativen Arrays mithilfe der „for“-Schleife wird im folgenden Skript gezeigt:

#!/bin/bash

#Deklarieren Sie ein numerisches Array

erklären -A Bücher = ( „Shell-Scripting-Tutorials“ „Bish Bash Bosh!“ „Bash schnell lernen“ )

#Drucken Sie die numerischen Array-Werte

Echo „Numerische Array-Werte sind:“

für In In ' ${books[@]} '

Tun

Echo ' $in '

Erledigt

Echo

#Deklarieren Sie ein assoziatives Array mit Werten

erklären -A Kunden = (

[ Ausweis ] = 'H-5623'

[ Name ] = 'Herr. Ahnaf'

[ Adresse ] = „6/A, Dhanmondi, Dhaka.“

[ Telefon ] = '+8801975642312' )

#Drucken Sie die assoziativen Array-Werte

Echo „Assoziative Array-Werte sind:“

für k In ' ${!clients[@]} '

Tun

Echo ' $k => ${Kunden[$k]} '

Erledigt

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Hier werden die Werte des numerischen Arrays und die Schlüssel-Wert-Paare des assoziativen Arrays in der Ausgabe ausgegeben:

  S. 5

Zur Spitze gehen

Lesen Sie den jeweiligen Wertebereich des Arrays

Die Array-Werte des jeweiligen Indexbereichs werden im folgenden Skript angezeigt. Im Skript wird ein numerisches Array aus vier Elementen definiert. Zwei Array-Werte aus dem zweiten Index des Arrays werden später gedruckt.

#!/bin/bash

#Deklarieren Sie ein numerisches Array

erklären -A Kuchen = ( 'Schokoladenkuchen' 'Vanille Kuchen' „Roter Samtkuchen“ 'Erdbeerkuchen' )

#Drucken Sie die jeweiligen Array-Werte

Echo „Das 2. und 3. Element der Array-Werte sind:“

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

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Der zweite und dritte Wert des Arrays sind „Vanilla Cake“ und „Red Velvet Cake“, die in der Ausgabe gedruckt werden:

  S. 6

Zur Spitze gehen

Fügen Sie die Array-Werte ein

Die Methode zum Hinzufügen mehrerer Werte am Ende des Arrays wird im folgenden Skript gezeigt. Das Hauptarray „$books“ enthält drei Elemente und zwei Elemente werden am Ende des Arrays „$books“ hinzugefügt.

#!/bin/bash

#Deklarieren Sie ein numerisches Array

erklären -A Bücher = ( „Shell-Scripting-Tutorials“ „Bish Bash Bosh!“ „Bash schnell lernen“ )

#Drucken Sie die Array-Werte vor dem Einfügen

Echo „Array-Werte:“

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

Echo

Bücher = ( ' ${books[@]} ' „Linux-Befehlszeilen- und Shell-Scripting-Bibel“ „Advanced Bash Scripting Guide von Mendel Cooper“ )

#Drucken Sie die Array-Werte nach dem Einfügen

Echo „Array-Werte nach dem Einfügen von zwei Werten:“

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

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die Array-Werte vor und nach dem Einfügen neuer Werte werden in der Ausgabe gedruckt:

  S. 7

Zur Spitze gehen

Lesen Sie den Dateiinhalt in das Array ein

Erstellen Sie eine Textdatei mit dem Namen „fruits.txt“ mit folgendem Inhalt, um das Skript dieses Beispiels zu testen:

Früchte.txt

Mango

Jackfrucht

Ananas

Orange

Banane

Im folgenden Skript wird der Inhalt einer Datei in einem Array namens „$data“ gespeichert. Hier wird jede Zeile der Datei als jedes Element des Arrays gespeichert. Als nächstes werden die Array-Werte gedruckt.

#!/bin/bash

#Lesen Sie den Dateinamen vom Benutzer

lesen -P „Geben Sie den Dateinamen ein:“ Dateiname

Wenn [ -F $Dateiname ]

Dann

#Den Dateiinhalt in ein Array einlesen“

Daten = ( ` Katze ' $Dateiname ' ` )

Echo „Der Inhalt der Datei ist unten angegeben:“

#Lesen Sie die Datei Zeile für Zeile

für Linie In ' ${data[@]} '

Tun

Echo $line

Erledigt

Sei

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die vom Befehl „cat“ angezeigte Ausgabe und die Ausgabe des Skripts sind ähnlich, da der Befehl „cat“ und das Skript auf dieselbe Datei zugreifen:

  S. 8

Zur Spitze gehen

Kombinieren Sie die Array-Werte

Durch die Kombination der Werte mehrerer Arrays wird ein neues Array erstellt. Im folgenden Skript werden zwei numerische Arrays von Zeichenfolgen definiert. Anschließend wird ein neues Array erstellt, indem die Werte dieser Arrays kombiniert werden.

#!/bin/bash

#Deklarieren Sie das erste Array

erklären -A nameList1 = ( „Michael“ 'David' 'Alexander' 'Thomas' )

Echo „Die ersten Array-Werte sind:“

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

Echo

#Deklarieren Sie das zweite Array

erklären -A nameList2 = ( 'Robert' 'Richard' )

Echo „Die zweiten Array-Werte sind:“

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

Echo

#Erstellen Sie ein neues Array, indem Sie zwei Arrays kombinieren

kombiniertes_Array = ( ' ${nameList1[@]} ' ' ${nameList2[@]} ' )

Echo „Die kombinierten Array-Werte sind:“

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

Echo

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Hier werden die Werte von drei Arrays in der Ausgabe ausgegeben. Das dritte Array enthält alle Werte des ersten und zweiten Arrays:

  S. 9

Zur Spitze gehen

Ändern Sie die Array-Werte

Die Methode zum Aktualisieren eines oder mehrerer Array-Werte durch Angabe des Index wird im folgenden Skript gezeigt:

#!/bin/bash

#Deklarieren Sie das erste Array

erklären -A Namensliste = ( „Michael“ 'David' 'Alexander' 'Thomas' )

Echo „Array-Werte:“

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

Echo

#Aktualisieren Sie den 2. Wert des Arrays

Namensliste [ 1 ] = 'Robert'

Echo „Array-Werte nach Update:“

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

Echo

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die Werte des Hauptarrays und der aktualisierten Arrays werden in der Ausgabe gedruckt:

  S. 10

Entfernen Sie die Array-Werte

Der Befehl „unset“ wird verwendet, um das bestimmte Element oder alle Elemente des Arrays zu entfernen. Im folgenden Skript wird das zweite Element des Arrays entfernt.

#!/bin/bash

#Deklarieren Sie ein numerisches Array

erklären -A Bücher = ( „Shell-Scripting-Tutorials“ „Bish Bash Bosh!“ „Bash schnell lernen“ )

#Drucken Sie die Array-Werte vor dem Entfernen aus

Echo „Array-Werte:“

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

Echo

#Entfernen Sie das 2. Element

nicht gesetzt Bücher [ 1 ]

#Drucken Sie die Array-Werte nach dem Entfernen aus

Echo „Array-Werte nach dem Entfernen des 2. Werts:“

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

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die Werte des Hauptarrays und die Arraywerte nach dem Entfernen eines Werts werden in der Ausgabe gedruckt:

  S. 11

Zur Spitze gehen

Suchen und ersetzen Sie die Array-Werte

Im folgenden Skript wird der bestimmte Wert des Arrays durch einen anderen Wert ersetzt, wenn der im Muster definierte Suchwert mit einem beliebigen Wert des Arrays „$names“ übereinstimmt.

#!/bin/bash

#Deklarieren Sie das erste Array

erklären -A Namen = ( „Michael“ 'David' 'Alexander' 'Thomas' )

#Drucken Sie die ursprünglichen Array-Werte

Echo „Ursprüngliche Array-Werte:“

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

#Nach dem Ersetzen der Array-Werte eine Zeichenfolge generieren

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

#Drucken Sie die Array-Werte nach dem Ersetzen

Echo „Array-Werte nach Ersetzen:“

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

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die Werte des Hauptarrays und die Arraywerte nach dem Ersetzen eines Werts werden in der Ausgabe gedruckt:

  S. 12

Zur Spitze gehen

Verwenden Sie ein Array als Funktionsargument

Im folgenden Skript wird eine Array-Variable als Funktionsargument übergeben und die Werte dieses Arrays werden später gedruckt.

#!/bin/bash

#Deklarieren Sie ein Array von Zahlen

erklären -A Zahlen = ( 10 6 Vier fünf 13 8 )

#Definieren Sie eine Funktion, die einen Argumentwert annimmt

Funktion ( )

{

#Lesen Sie das erste Argument

Zahlen = 1 $

#Drucken Sie die Array-Werte

Echo „Array-Werte:“

printf '%d\n' ' ${Zahlen[@]} '

}

#Rufen Sie die Funktion mit dem Array als Argument auf

Funktion ' ${Zahlen[@]} '

Ausgabe :

Nach der Ausführung des Skripts erscheint folgende Ausgabe:

  S. 13

Zur Spitze gehen

Gibt ein Array von der Funktion zurück

Im folgenden Skript wird die Funktion mit vier numerischen Argumenten aufgerufen. Mit den Argumentwerten wird ein Array erstellt und dieses Array wird von der Funktion an den Aufrufer zurückgegeben.

#!/bin/bash

#Definieren Sie eine Funktion, die vier Argumentwerte liest

Funktion ( )

{

#Lesen Sie die Argumentwerte

Zahlen = ( 1 $ 2 $ 3 $ 4 $ )

#Gib das Array zurück

Echo ' ${Zahlen[@]} '

}

#Rufen Sie die Funktion mit drei Argumenten auf

return_val =$ ( Funktion 78 Vier fünf 90 23 )

#Speichern Sie den Rückgabewert in einem Array

lesen -A Auf eins <<< $return_val

#Drucken Sie die Werte des zurückgegebenen Arrays

Echo „Die Werte des Arrays sind:“

für In In ' ${num[@]} '

Tun

Echo ' $in '

Erledigt

Ausgabe :

Nach der Ausführung des Skripts erscheint folgende Ausgabe:

Zur Spitze gehen

Machen Sie das Array leer

Das folgende Skript zeigt die Methode zum Leeren eines Arrays mit dem Befehl „unset“. Die Gesamtzahl der Array-Werte wird vor und nach dem Leeren des Arrays gedruckt.

#!/bin/bash

#Deklarieren Sie ein Array von Zahlen

erklären -A Zahlen = ( 10 6 Vier fünf 13 80 )

Echo „Anzahl der Array-Werte: ${#numbers[@]} '

#Machen Sie das Array leer

nicht gesetzt Zahlen

Echo „Anzahl der Array-Werte, nachdem das Array leer gemacht wurde: ${#numbers[@]} '

Ausgabe :

Nach der Ausführung des Skripts erscheint die folgende Ausgabe. Die Anzahl der Elemente des Arrays wurde zu 0, nachdem das Array leer gemacht wurde:

  S. 15

Zur Spitze gehen

Abschluss

In diesem Tutorial werden anhand von 15 einfachen Beispielen verschiedene Methoden zum Deklarieren, Zugreifen, Ändern und Entfernen der Array-Variablen im Bash-Skript gezeigt. Wir hoffen, dass dieses Tutorial den Bash-Benutzern hilft, die Verwendung des Bash-Arrays im Detail kennenzulernen.