So simulieren Sie eine Reihe von Arrays in Bash

So simulieren Sie eine Reihe von Arrays in Bash
Bash ist in der Tat eine interpretierte, interaktive Sprache und wie viel Platz zum Voraus reservieren muss. Es ist auch möglich, ein neues Array dynamisch vorzubereiten, ohne es zu deklarieren oder ein zuvor definiertes Array zu erweitern, um weitere Einträge aufzunehmen. Trotzdem werden mehrdimensionale Arrays von Bash nicht unterstützt, und wir können keine Array -Komponenten erhalten, die auch Arrays sind. Glücklicherweise können mehrdimensionale Arrays simuliert werden. Dieser Artikel enthält einige Abbildungen der Simulation eines Arrays von Arrays in einem Bash -Skript.

Beispiel 01: Mit einfachen "für" Loops

Wir haben ein Beispiel für die Simulation eines Arrays von Arrays mithilfe der einfachen Methode. Lassen Sie uns zeigen, wie Sie eine benutzerdefinierte M x N-Tabelle mit Zufallszahlen laden (die nicht zufällig sind, da jede Spalte in den meisten ihrer Zeilen zu jeder Zeit eine ähnliche Zahl aufweist, die jedoch nicht für die Frage gilt ) und drucken Sie es aus. Wenn wir an einer Bash arbeiten, die Sie haben, Bash Version 4, würde das folgende Skript sicherlich effizient funktionieren. Wir sollten nicht einsam deklarieren 0; Das ist eher eine perfekte Lösung für Werte, die energisch akzeptiert werden. Wir haben ein Array mit dem Schlüsselwort "-a" deklariert. Wenn wir das assoziative Array mit -A nicht definieren, funktioniert der Code möglicherweise nicht für uns. Das Lesenschlüsselwort wird dann verwendet, um die Eingabe des Benutzers zu lesen, die Zeilen und Spalten einer Tabelle sind. Dann haben wir zwei "für" Loops für die Inkrementierung von Zeilen und Spalten einer Tabelle verwendet. In for Loop haben wir ein zweidimensionales Array gemacht. Im nächsten für die Schleife wurden alle Werte eines Arrays angezeigt.

Wenn Sie die Bash -Datei ausführen, werden ein Benutzer aufgefordert, Zeilen und Spalten als „M“ und „N“ einzugeben. Danach erzeugt für Schleifen eine zweidimensionale Tabelle wie unten.

Beispiel 02: Verwenden von Hashes

Wenn wir die gleiche Instanz nehmen, können wir die Arrays mit Hashes emulieren. Wir müssen jedoch vorsichtiger bei der Führung von Nullen und mehreren anderen Dingen sein. Die nächste Erklärung ist die Funktionsweise. Der Ausweg ist jedoch sehr weit davon entfernt, ideal zu sein. Wir haben Reihen und Spalten manuell genommen. Für die Schleife wird eine Matrix hergestellt. Dann haben wir Hashes verwendet, um das zweidimensionale Array zu emulieren. Endlich wird das Array wie unten ausgedruckt.

Führen Sie die Datei „Eingabe aus.sh ”in der Bash -Shell mit dem Bash -Befehl. Sie finden eine Tabelle mit den genannten Zeilen und Spaltennummer.

Beispiel 03: Verwenden von assoziativen Arrays

Lassen Sie uns ein Beispiel für eine Simulation haben, die einen ähnlichen Effekt unter Verwendung der assoziativen Arrays mit einer Array von Arrays wie unten verwendet. Nach der Erklärung des assoziativen Arrays haben wir die Werte für Arrays getrennt definiert. Danach haben wir es geschafft, die Werte auf zweidimensionale Weise auszudrucken.

Sie können die Ausgabe als zweidimensionales Array sehen, während Sie die Datei ausführen. Wenn wir die Zeile „Declare -a arr“ ignorieren, kann die Echo -Anweisung eher (2 3) als (0 1) angezeigt, da (0,0), (1,0) und andere möglicherweise als mathematisches verwendet wurden Ausdruck und berechnet auf 0 (der Wert auf der rechten Seite eines Kommas).

Beispiel 04: Verwenden von Namensreferenzen

In Bash ist es ein häufiges Problem mit Referenzierungsarrays in Arrays, mit denen Sie Namensreferenzen mit Declare -n konstruieren müssen. Dieser Name dient -n dient als Name Ref für den zugewiesenen Wert (nach =). Derzeit verarbeiten wir diese Variable nur mit Attributname Ref, um sich so zu erweitern, als wäre sie ein Array und erweitert das entsprechend zitierte Array wie vorher wie zuvor. Lassen Sie uns ein Beispiel für Namensfestungen haben. Wir haben zwei Arrays erfolgreich deklariert. Danach haben wir beide Arrays einem anderen Array als Mitglied zugewiesen. Wir haben für die Schleife verwendet, um ein zweidimensionales Array zu machen. Wir haben eine weitere Variable gemacht, um die Eins-von-zu-Eins-Werte des Array-Gruppengruppe zum Vergleich hinzuzufügen. Tief im Inneren wird es an Mitglieder der inneren Arrays „Bar“ und „Foo“ gehen, um Werte zu nehmen und sie zu vergleichen, während die Nachricht gedruckt wird.

Wenn wir die Datei ausführen "Eingabe.SH ”, Sie werden die folgende Ausgabe sehen. Die Variable "LST" hat Werte von inneren Arrays innerhalb des Array "Gruppen".

Beispiel 05: Verwenden Sie das Schlüsselwort Cut Cut

Erst jetzt bin ich darauf gestoßen. Es hatte einen ziemlich einfachen Ansatz gegeben, der für alle funktioniert hat. Um eine Hauptkarte für das System anzuzeigen, habe ich beschlossen, ein Array mit einem Gerätenamen und einem Bildschirmspeicherort zu verwenden. Wir müssen den Titel des Geräts und den entsprechenden Ort einer Anzeige in eine einzelne Zeichenfolge mit nur einem Trennzeichen verkettet, von dem wir angenommen haben .). Und ich habe ein Schlüsselwort "Schnitt" verwendet, um die Betonwerte bei Bedarf in ihre Komponenten aufzuteilen. Es kann jedoch einen klareren und einfacheren Ansatz geben, dies zu tun, und dies ist nur zu veranschaulichen. Danach müssen Sie nach dem Erstellen des Substrings sowohl den Gerätenamen als auch seinen Standort separat drucken.

Lassen Sie uns die Bash -Eingabe ausführen.sh ”Datei. Sie sehen das getrennte Gerät und seinen Standort in der Shell -Eingabeaufforderung als während der Ausführung. Die Lösung funktioniert mit dem Befehl Cut.

Beispiel 06

Nehmen wir uns ein wenig länger ein Beispiel, um ein mehrdimensionales Array zu emulieren. In der Funktion load_alpha () werden alle Alphabete in das Array geladen. Danach wird die Funktion print_alpha () deklariert und verwendet, um alle Alphabete in der Reihen-Major-Reihenfolge als Matrix oder zweidimensionales Format auszudrucken. Andererseits haben wir die Funktion rotate () verwendet, um das Array zu drehen. Versuchen wir dieses Beispiel in der Bash -Shell, um Ergebnisse zu sehen.

Während der Ausführung haben wir eine sehr schöne Struktur des mehrdimensionalen Arrays in der Bash -Shell gefunden wie unten

Abschluss

Wir haben einige Beispiele für die Simulation von Arrays von Arrays in Bash erfolgreich ausprobiert. Ich hoffe, es funktioniert!