Es gibt viele Gründe, warum man ein Bash -Array wiederherstellen möchte:
Sie können glauben, dass Bash die Fähigkeit verliert, Funktionsarrays zurückzugeben. Das ist jedoch nicht genau richtig. Es ist möglich, das resultierende Array durch Referenz auf eine Methode zu verschieben, wobei Cues von C/C ++ - Entwicklern entnommen wird. Eine solche Strategie ermöglicht es der Methode, weiterhin frei von Referenzen auf eine globale Variable zu sein. Der folgende Artikel zeigt klare Fälle dieses Falls.
Beispiel 1: Rückgabe eines Arrays
Melden Sie sich in Ihr Linux -System an und öffnen Sie das Befehlsterminal, um fortzufahren. Wir erstellen eine Bash -Datei mit dem Namen „Skript.sh ”mit dem berühren Befehl, um das Array mit der Bash -Funktion zurückzugeben. Das Skript lautet wie folgt:
$ Touchskript.Sch
Sie können die neu erstellte Datei in der anzeigen Heim Verzeichnis. Öffnen Sie diese Datei und schreiben Sie den angehängten Code nach wie. Hier versuchen wir, ein assoziatives Array durch ein Argument in einer Methode aus beiden Listenpass zu erstellen.
Anfangs haben wir die Funktion erstellt foo ().
In diesem Programm haben wir den Begriff „Deklare“ entfernt, bei dem es sich um einen vorkonfigurierten Bash-Befehl handelt, mit dem wir die Attribute ändern oder anpassen können, die Methoden der Schale, die an die Variablen verschmiert sind, und die Werte dieser Attribute innerhalb der zu demonstrieren Spanne unseres Shell -Befehlsanschlusss. Darüber hinaus kann es verwendet werden, um eine lange Variable zu definieren. Zuletzt wird es verwendet, um die Variablen zu definieren.
Wir haben dem "arr" -Array "fooval" hinzugefügt.
Das Schlüsselwort „-a“ wird verwendet, um das zu erstellen Namen assoziatives Array, falls unterstützt. Wir müssen die Liste/das Array als globale Variable verwenden, was impliziert, dass nur eine Methode, nicht als Skript, diese Aktion ausführen kann.
Wir haben auch ein weiteres Array mit dem Namen "Myarr" zur Verwendung als Referenz erstellt. Bash ermöglicht es, dass der Name einer relativen Variablen -ARR dem Namen der relativen Variablen myarr unterscheidet.
Danach haben wir in der achten Zeile das „Myarr“ -Array an die Bash übergeben foo () Funktion als Referenz.
In der Vergangenheit haben wir die "für" -Schloop verwendet, um sowohl die "arr" als auch "myarr" -Arrays auf die zu drucken foo () Funktion.
Wir werden nun das Ergebnis dieses Codes überprüfen. Führen Sie den Befehl bash aus, um den obigen Code auszuführen. Sie können sehen, dass das Array in die Funktion zurückgegeben und dann gedruckt wurde.
$ bash skript.Sch
Beispiel 2: Rückgabe eines weiteren Arrays
Sehen wir uns ein weiteres Beispiel für die Rückgabe von Arrays in eine Funktion an. Öffnen Sie Ihr Befehlsterminal und erstellen Sie eine neue Datei mit dem Namen „OpenVPN.Protokollieren ”Verwenden Sie die berühren Befehl wie folgt:
$ touch openvpn.Protokoll
Öffnen Sie nun das „OpenVPN.Logieren Sie die Datei und schreiben Sie den folgenden Text in diese Datei, wie gezeigt. Speichern Sie diese Datei und schließen Sie sie.
Öffnen Sie erneut die Befehlsschale und erstellen Sie eine andere Datei mit dem Namen „Skript.sh “, benutzt die berühren Befehl zum Hinzufügen des Bash -Skripts zur Datei.
$ Touchskript.Sch
Öffnen Sie als nächstes das Drehbuch „Skript.sh ”Datei und fügen Sie den folgenden Code in diese Datei nach-iS an. Speichern und schließen Sie diese Datei. Dieses Skript verwendet eine Methode, die Werte/Zeichenfolgen aus einem Dokument liest und ein Array zurückgibt:
Lassen Sie uns jetzt einen detaillierten Blick auf die Arbeit dieses Skripts sehen.
Überprüfen Sie nun die Ausgabe dieses Bash -Skripts. Führen Sie den Befehl bash aus, um das Skript auszuführen.sh ”Datei. Wie Sie sehen können, druckt die erste Echo -Anweisung den gesamten Text aus dem „OpenVPN.Protokolldatei, die im Array „Clients“ als eine Zeile gespeichert wurde. In der zweiten Echo -Anweisung wird die String -Nachricht angezeigt. In der dritten Echo -Anweisung wird das Array „Clients“ in indizierter Form angezeigt, wie es gerade konvertiert wurde. Der vierte zeigt erneut eine Nachricht an. Der letzte zeigt den Inhalt des „Clients“ -Arrays einzeln an.
Abschluss
Dieser Artikel hat Ihnen gezeigt, wie Sie Arrays (insbesondere assoziative Arrays) mit dem integrierten Befehl „Declare“ mit zwei Beispielen in eine Funktion zurückgeben können. Ich hoffe, dass dieser Artikel Ihnen geholfen hat, dieses Thema besser zu verstehen.