Programmazione BASH

Come creare una funzione Bash che restituisce un array Ar

Come creare una funzione Bash che restituisce un array Ar
A prima vista può sembrare che restituire un array da una funzione Bash non sia realistico. Considerando tutti i vantaggi, può essere utile chiamare più metodi per costruire array per suddividere il processo di raccolta di tutti i parametri appropriati per una chiamata YAD.

Ci sono molte ragioni per cui si potrebbe voler ripristinare un array BASH:

Potresti credere che Bash perda la capacità di restituire array di funzioni. Tuttavia, questo non è esattamente corretto. È possibile spostare l'array risultante in un metodo per riferimento, prendendo spunto dagli sviluppatori C/C++. Tale strategia consente al metodo di continuare ad essere libero da riferimenti verso una variabile globale. Il seguente articolo mostra chiari casi di questo caso.

Esempio 1: restituzione di un array

Accedi al tuo sistema Linux e apri il terminale di comando per procedere. Creeremo un file Bash chiamato "script.sh" usando il toccare comando per restituire l'array usando la funzione Bash. La sceneggiatura è la seguente:

$ touch script.sh

È possibile visualizzare il file appena creato in Casa directory. Apri questo file e scrivici il codice aggiunto così com'è. Qui, stiamo tentando di creare un array associativo attraverso un argomento in un metodo da una lista pass.

Inizialmente, abbiamo creato la funzione pippo().

All'interno di questo programma, abbiamo rimosso il termine "declare", che è un comando preconfigurato di Bash che ci consente di modificare o personalizzare gli attributi, i metodi della shell imbrattati alle variabili e dimostrare i valori di questi attributi all'interno del span del nostro terminale di comando della shell. Inoltre, può essere utilizzato per definire una variabile lunga. Infine, viene utilizzato per definire le variabili.

Abbiamo aggiunto il valore "fooval" all'array "arr".

La parola chiave "-A" viene utilizzata per creare il NOMI array associativo se supportato. Dobbiamo usare la lista/matrice come variabile globale, il che implica che solo un metodo, non uno script, può eseguire questa azione.

Abbiamo anche creato un altro array, chiamato "myarr", da usare come riferimento. Bash consente al nome di una variabile relativa arr di essere dissimile dal nome della variabile relativa myarr.

Successivamente, nell'ottava riga, abbiamo passato l'array "myarr" al Bash pippo() fungere da riferimento.

In passato, abbiamo usato il ciclo "for" per stampare sia gli array "arr" che "myarr" sul pippo() funzione.

Ora controlleremo il risultato di questo codice. Esegui il comando Bash per eseguire il codice sopra. Puoi vedere che l'array è stato restituito alla funzione e poi stampato.

$ script bash.sh

Esempio 2: restituzione di un altro array

Vediamo un altro esempio di restituzione di array a una funzione. Apri il tuo terminale di comando e crea un nuovo file chiamato "openvpn.log” utilizzando il toccare comando, come segue:

$ touch openvpn.log

Ora apri il file "openvpn.log" e scrivi il testo seguente in questo file, come mostrato. Salva questo file e chiudilo.

Ancora una volta, apri la shell dei comandi e crea un altro file chiamato "script.sh", usando il toccare comando per aggiungere lo script Bash al file.

$ touch script.sh

Quindi, apri lo "script.sh" e aggiungi il codice seguente in questo file così com'è. Salva e chiudi questo file. Questo script utilizzerà un metodo che legge valori/stringhe da un documento e restituisce un array:

Diamo ora uno sguardo dettagliato al funzionamento di questo script.

Controlliamo ora l'output di questo script Bash. Esegui il comando Bash per eseguire lo "script.sh" file. Come puoi vedere, la prima istruzione echo stamperà tutto il testo da "openvpn.log", che è stato salvato nell'array "clients" come una riga. La seconda istruzione echo mostrerà il messaggio di stringa. La terza istruzione echo mostrerà l'array "clients" in forma indicizzata, poiché è stato appena convertito. Il quarto visualizzerà di nuovo un messaggio. L'ultimo mostrerà il contenuto dell'array "clients" individualmente.

Conclusione

Questo articolo ti ha mostrato come restituire array (in particolare array associativi) a una funzione usando il comando integrato "dichiara" con due esempi. Spero che questo articolo ti abbia aiutato a capire meglio questo argomento.

Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...
Come sviluppare un gioco su Linux
Un decennio fa, non molti utenti Linux avrebbero previsto che il loro sistema operativo preferito un giorno sarebbe diventato una piattaforma di gioco...