Wusste doch, dass es geht ...
Wie überall leben wir auch in der bash meist von associative arrays.
Wie jedoch übergibt man diese an und aus Funktionen ?
Glaubt man der Google-Recherche, ist dies kaum bis nicht möglich. Auch die (dank U.S-Kindle-Account durchaus vertraute) amerikanische Fachliteratur schweigt sich zu diesem Thema aus.
Aber natürlich geht das doch, wenn man folgende Eigenschaften dieser altehrwürdigen Shell wohlwollend berücksichtigt.
- In bash übergeben werden keine Variablen oder Objekte, sondern lediglich Zeichenketten, also Namen
- Es gilt nun, einer aufgerufenen Funktion beizubringen, dass ein übergebener Name derjenige einer Variablen und
- ein Ausdruck 2 mal zu parsen ist, um diese übergebene Variable zu dereferenzieren
Bei Key-Value-Paaren assoziativer Vektoren ist das ein klein wenig komplexer als bei indizierten Arrays, für welche die grundlegenden Techniken unten vielfach beschrieben sind.
Die Vorgehensweise schauen wir uns am Beispiel einer kleinen Shell-Internetradioanwendung
- mymedia mit der Ausgabe

- und ihrer zugehörigen Konfigurationsdatei radioList mit den durch ';' getrennten Key-Value-Paaren der Internetradiostationen

an. Beide Dateien finden sich im Downloadbereich.
Impressum und Datenschutzerklärung