Ci sono molte ragioni per cui si potrebbe voler ripristinare un array di bash:
Potresti credere che Bash perda la capacità di restituire array di funzioni. Tuttavia, questo non è esattamente corretto. È possibile spostare l'array risultante su un metodo in riferimento, prendendo spunti dagli sviluppatori C/C ++. Tale strategia consente al metodo di continuare a essere libera da riferimenti a una variabile globale. Il seguente articolo mostra istanze chiare di questo caso.
Esempio 1: restituire un array
Accedi al sistema Linux e apri il terminale di comando per procedere. Creeremo un file bash chiamato "Script.sh "usando il tocco comando per restituire l'array usando la funzione bash. Lo script è il seguente:
$ touch script.sh
È possibile visualizzare il file appena creato in Casa directory. Apri questo file e scrivi il codice aggiunto in esso così com'è. Qui, stiamo tentando di creare un array associativo attraverso un argomento in un metodo di entrambi gli elenchi.
Inizialmente, abbiamo creato la funzione foo ().
All'interno di questo programma, abbiamo rimosso il termine "dichiarare", che è un comando preconfigurato bash che ci consente di modificare o personalizzare gli attributi, i metodi della shell si sono spalmati sulle variabili e dimostrano i valori di questi attributi all'interno del campata del nostro terminale di comando shell. Inoltre, può essere usato 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 l'elenco/array 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", per l'uso come riferimento. Bash consente al nome di una variabile relativa arr di essere diverso dal nome della variabile relativa Myarr.
Dopodiché, nell'ottava linea, abbiamo superato l'array "Myarr" alla festa foo () Funzionare come riferimento.
In passato, abbiamo usato il ciclo "per" per stampare entrambi gli array "arr" e "myarr" ai foo () funzione.
Ora controlleremo il risultato di questo codice. Eseguire il comando bash per eseguire il codice sopra. Puoi vedere che l'array è stato restituito alla funzione e quindi stampato.
$ Bash Script.sh
Esempio 2: restituire 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.registro "usando il file tocco comando, come segue:
$ TOUCT OpenVPN.tronco d'albero
Ora, apri "OpenVPN.registro "file e scrivere il seguente testo in questo file, come mostrato. Salva questo file e chiudilo.
Ancora una volta, apri la shell di comando e crea un altro file chiamato "Script.sh, "usando il tocco comando per aggiungere lo script bash al file.
$ touch script.sh
Successivamente, apri lo "script.File sh "e aggiungi il seguente codice 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.file sh ". Come puoi vedere, la prima istruzione Echo stamperà tutto il testo da "OpenVPN.File di registro ", che è stato salvato nell'array" client "come una riga. La seconda istruzione Echo visualizzerà il messaggio String. La terza istruzione Echo mostrerà l'array "client" in forma indicizzata, in quanto è appena stata convertita. Il quarto mostrerà di nuovo un messaggio. L'ultimo mostrerà individualmente il contenuto dell'array "client".
Conclusione
Questo articolo ha mostrato come restituire array (in particolare array associativo) a una funzione usando il comando incorporato "dichiara" con due esempi. Spero che questo articolo ti abbia aiutato a capire meglio questo argomento.