- Definire una matrice per indice
- Definire una matrice con più valori
- Definire un array associativo
- Contare i valori dell'array
- Leggi i valori dell'array per loop
- Leggere i valori particolari dell'array
- Inserisci i valori della matrice
- Leggere il contenuto di un file nell'array
- Combina i valori dell'array
- Modificare i valori della matrice
- Rimuovere i valori della matrice
- Cerca e sostituisci i valori dell'array
- Utilizzare un array come argomento di funzione
- Restituisce l'array dalla funzione
- Rendi vuoto l'array
Definire una matrice per indice
Il metodo per dichiarare un array menzionando gli indici numerici sequenziali o non sequenziali è mostrato nello script seguente. Questo tipo di array è chiamato array numerico. In questo caso, l'array '$books' viene creato definendo tre indici sequenziali e l'array '$products' viene creato definendo quattro indici non sequenziali. Tutti i valori di entrambi gli array vengono stampati utilizzando la funzione 'printf'.
#!/bin/bash
#Definisce l'indice dell'array in ordine sequenziale
libri [ 0 ] = 'Imparare la bash Shell'
libri [ 1 ] = 'Operazioni di sicurezza informatica con bash'
libri [ 2 ] = 'Suggerimenti per la riga di comando di Bash'
eco 'Tutti i valori del primo array:'
printf '%s\n' ' ${libri[@]} '
#Definisce l'indice dell'array in ordine non sequenziale
prodotti [ 10 ] = 'Penna'
prodotti [ 5 ] = 'Matita'
prodotti [ 9 ] = 'Regolare'
prodotti [ 4 ] = 'Carta formato A4'
eco
eco 'Tutti i valori del secondo array:'
printf '%s\n' ' ${prodotti[@]} '
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. I valori di entrambi gli array vengono stampati nell'output. L'ordine degli indici viene mantenuto al momento della stampa per l'array di indici non sequenziali:
Definire una matrice con più valori
Un array numerico con più valori può essere dichiarato utilizzando il comando “declare” con l'opzione -a o senza utilizzare il comando “declare”. Nello script seguente, il primo array viene dichiarato utilizzando il comando 'declare' e il secondo array viene creato senza utilizzare il comando 'declare'.
#!/bin/bash
#Dichiara un array numerico con la parola chiave 'declare'
dichiarare -UN nomi = ( 'Michael' 'Davide' 'Alessandro' 'Tommaso' 'Roberto' 'Richard' )
#Stampa i valori dell'array
eco 'Tutti i valori del primo array:'
printf '%s\n' ' ${nomi[@]} '
#Dichiara un array numerico senza la parola chiave 'dichiara'
libri = ( 'Tutorial sullo scripting della shell' 'Bish Bash Bosh!' 'Impara rapidamente Bash' )
#Aggiungi nuova riga
eco
#Stampa i valori dell'array
eco 'Tutti i valori del secondo array:'
printf '%s\n' ' ${libri[@]} '
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. I valori di entrambi gli array sono stampati qui:
Definire un array associativo
L'array che contiene il valore stringa come indice è chiamato array associativo. L'opzione -A viene utilizzata con il comando 'dichiara' in Bash per creare un array Bash associativo. Nello script seguente, il primo array associativo viene dichiarato citando separatamente gli indici e il secondo array viene dichiarato citando tutte le coppie chiave-valore al momento della dichiarazione dell'array.
#!/bin/bash#Dichiara una variabile di array associativa senza valore
dichiarare -UN dipendente
#Assegnare il valore separatamente definendo l'indice
dipendente [ 'id' ] = '78564'
dipendente [ 'nome' ] = 'Attori disponibili'
dipendente [ 'inviare' ] = 'AMMINISTRATORE DELEGATO'
dipendente [ 'stipendio' ] = 300000
#Stampa due valori dell'array
eco 'ID Dipendente: ${dipendente[id]} '
eco 'Nome dipendente: ${dipendente[nome]} '
#Dichiara un array associativo con valori
dichiarare -UN corso = ( [ codice ] = 'CSE-206' [ nome ] = 'Programmazione orientata agli oggetti' [ credito_ora ] = 2.0 )
#Aggiungi nuova riga
eco
#Stampa due valori di array del secondo array
eco 'Nome del corso: ${corso[nome]} '
eco 'Ora di credito: ${corso[credit_hour]} '
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. I valori particolari dell'array associativo vengono stampati qui menzionando la chiave o il valore dell'indice:
Contare i valori dell'array
Il metodo per contare gli elementi totali dell'array numerico e dell'array associativo è mostrato nel seguente script:
#!/bin/bash#Dichiara un array numerico
dichiarare -UN nomi = ( 'Michael' 'Davide' 'Alessandro' 'Tommaso' 'Roberto' 'Richard' ) ;
eco 'La lunghezza dell'array numerico è ${#nomi[@]} '
#Dichiara un array associativo
dichiarare -UN corso = ( [ codice ] = 'CSE-206' [ nome ] = 'Programmazione orientata agli oggetti' [ credito_ora ] = 2.0 )
eco 'La lunghezza dell'array associativo è ${#corso[@]} '
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. La lunghezza dell'array numerico e associativo viene stampata qui:
Leggi i valori dell'array per ciclo
Il metodo per leggere tutti i valori di un array numerico e di un array associativo utilizzando il ciclo 'for' è mostrato nel seguente script:
#!/bin/bash#Dichiara un array numerico
dichiarare -UN libri = ( 'Tutorial sullo scripting della shell' 'Bish Bash Bosh!' 'Impara velocemente Bash' )
#Stampa i valori dell'array numerico
eco 'I valori dell'array numerico sono:'
per In In ' ${libri[@]} '
Fare
eco ' $ dentro '
Fatto
eco
#Dichiara un array associativo con valori
dichiarare -UN clienti = (
[ id ] = 'H-5623'
[ nome ] = 'Sig. Ahnaf'
[ indirizzo ] = '6/A, Dhanmondi, Dacca.'
[ telefono ] = '+8801975642312' )
#Stampa i valori dell'array associativo
eco 'I valori dell'array associativo sono:'
per K In ' ${!clienti[@]} '
Fare
eco ' $ k => ${clienti[$k]} '
Fatto
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. Qui, i valori dell'array numerico e le coppie chiave-valore dell'array associativo vengono stampati nell'output:
Leggi il particolare intervallo di valori dell'array
I valori dell'array del particolare intervallo degli indici sono mostrati nello script seguente. Nello script viene definito un array numerico di quattro elementi. Due valori dell'array dal secondo indice dell'array verranno stampati successivamente.
#!/bin/bash#Dichiara un array numerico
dichiarare -UN torte = ( 'Torta al cioccolato' 'Torta alla vaniglia' 'Torta di velluto rosso' 'torta di fragole' )
#Stampa i valori specifici dell'array
eco 'Il 2° e il 3° elemento dei valori dell'array sono:'
printf '%s\n' ' ${torte[@]:1:2} '
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. Il secondo e il terzo valore dell'array sono 'Vanilla Cake' e 'Red Velvet Cake' che vengono stampati nell'output:
Inserisci i valori dell'array
Il metodo per aggiungere più valori alla fine dell'array è mostrato nello script seguente. L'array principale che è '$books' contiene tre elementi e due elementi vengono aggiunti alla fine dell'array '$books'.
#!/bin/bash#Dichiara un array numerico
dichiarare -UN libri = ( 'Tutorial sullo scripting della shell' 'Bish Bash Bosh!' 'Impara velocemente Bash' )
#Stampa i valori dell'array prima di inserirli
eco 'Valori matrice:'
printf '%s\n' ' ${libri[@]} '
eco
libri = ( ' ${libri[@]} ' 'Riga di comando di Linux e Bibbia dello scripting di shell' 'Guida avanzata allo scripting Bash di Mendel Cooper' )
#Stampa i valori dell'array dopo l'inserimento
eco 'Valori dell'array dopo aver inserito due valori:'
printf '%s\n' ' ${libri[@]} '
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. I valori dell'array prima e dopo l'inserimento di nuovi valori vengono stampati nell'output:
Leggere il contenuto del file nell'array
Crea un file di testo denominato 'fruits.txt' con il seguente contenuto per testare lo script di questo esempio:
frutta.txt
MangoJackfruit
Ananas
Arancia
Banana
Nello script seguente, il contenuto di un file viene archiviato in un array denominato '$data'. Qui, ogni riga del file viene memorizzata come ciascun elemento dell'array. Successivamente, vengono stampati i valori dell'array.
#!/bin/bash#Leggi il nome del file dall'utente
Leggere -P 'Inserisci il nome del file:' nome del file
Se [ -F $nomefile ]
Poi
#Leggi il contenuto del file in un array'
dati = ( ` gatto ' $nomefile ' ` )
eco 'Il contenuto del file è riportato di seguito:'
#Leggi il file riga per riga
per linea In ' ${dati[@]} '
Fare
eco $linea
Fatto
Essere
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. L'output mostrato dal comando 'cat' e l'output dello script sono simili perché si accede allo stesso file tramite il comando 'cat' e lo script:
Combina i valori dell'array
Viene creato un nuovo array combinando i valori di più array. Nello script seguente vengono definiti due array numerici di stringhe. Quindi, viene creato un nuovo array combinando i valori di questi array.
#!/bin/bash#Dichiara il primo array
dichiarare -UN nomeLista1 = ( 'Michael' 'Davide' 'Alessandro' 'Tommaso' )
eco 'I primi valori dell'array sono:'
printf '%S, ' ${ListaNomi1[@]}
eco
#Dichiara il secondo array
dichiarare -UN nomeLista2 = ( 'Roberto' 'Richard' )
eco 'I valori del secondo array sono:'
printf '%S, ' ${ListaNomi2[@]}
eco
#Crea un nuovo array combinando due array
array_combinato = ( ' ${ListaNomi1[@]} ' ' ${ListaNomi2[@]} ' )
eco 'I valori dell'array combinati sono:'
printf '%S, ' ${array_combinato[@]}
eco
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. Qui, i valori di tre array vengono stampati nell'output. Il terzo array contiene tutti i valori del primo e del secondo array:
Modificare i valori della matrice
Il metodo per aggiornare uno o più valori dell'array menzionando l'indice è mostrato nel seguente script:
#!/bin/bash#Dichiara il primo array
dichiarare -UN Lista di nomi = ( 'Michael' 'Davide' 'Alessandro' 'Tommaso' )
eco 'Valori matrice:'
printf '%S, ' ${ListaNomi[@]}
eco
#Aggiorna il 2° valore dell'array
Lista di nomi [ 1 ] = 'Roberto'
eco 'Valori dell'array dopo l'aggiornamento:'
printf '%S, ' ${ListaNomi[@]}
eco
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. I valori dell'array principale e degli array aggiornati vengono stampati nell'output:
Rimuovere i valori della matrice
Il comando 'unset' viene utilizzato per rimuovere l'elemento particolare o tutti gli elementi dell'array. Nello script seguente viene rimosso il secondo elemento dell'array.
#!/bin/bash#Dichiara un array numerico
dichiarare -UN libri = ( 'Tutorial sullo scripting della shell' 'Bish Bash Bosh!' 'Impara velocemente Bash' )
#Stampa i valori dell'array prima di rimuoverli
eco 'Valori matrice:'
printf '%s\n' ' ${libri[@]} '
eco
#Rimuovere il 2° elemento
non settato libri [ 1 ]
#Stampa i valori dell'array dopo la rimozione
eco 'Valori dell'array dopo aver rimosso il 2° valore:'
printf '%s\n' ' ${libri[@]} '
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. I valori dell'array principale e i valori dell'array dopo aver rimosso un valore vengono stampati nell'output:
Cerca e sostituisci i valori dell'array
Nello script seguente, il valore particolare dell'array viene sostituito da un altro valore se il valore di ricerca definito nel modello corrisponde a qualsiasi valore dell'array '$names'.
#!/bin/bash#Dichiara il primo array
dichiarare -UN nomi = ( 'Michael' 'Davide' 'Alessandro' 'Tommaso' )
#Stampa i valori dell'array originale
eco 'Valori dell'array originale:'
printf '%s\n' ' ${nomi[@]} '
#Genera una stringa dopo aver sostituito i valori dell'array
array_aggiornato = ${nomi[@]/Alessandro/Riccardo}
#Stampa i valori dell'array dopo la sostituzione
eco 'Valori dell'array dopo la sostituzione:'
printf '%s\n' ' ${array_aggiornato[@]} '
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. I valori dell'array principale e i valori dell'array dopo la sostituzione di un valore vengono stampati nell'output:
Utilizzare un array come argomento di funzione
Nello script seguente, una variabile di array viene passata come argomento della funzione e i valori di tale array vengono stampati successivamente.
#!/bin/bash#Dichiara un array di numeri
dichiarare -UN numeri = ( 10 6 Quattro cinque 13 8 )
#Definire una funzione che prenderà un valore di argomento
funz ( )
{
#Leggi il primo argomento
numeri = $ 1
#Stampa i valori dell'array
eco 'Valori matrice:'
printf '%d\n' ' ${numeri[@]} '
}
#Chiama la funzione con l'array come argomento
funz ' ${numeri[@]} '
Produzione :
Dopo l'esecuzione dello script viene visualizzato il seguente output:
Restituisce una matrice dalla funzione
Nello script seguente la funzione viene chiamata con quattro argomenti numerici. Viene creato un array con i valori degli argomenti e tale array viene restituito dalla funzione al chiamante.
#!/bin/bash#Definire una funzione che legge quattro valori di argomento
funz ( )
{
#Leggi i valori degli argomenti
numeri = ( $ 1 $ 2 $ 3 $ 4 )
#Restituisce l'array
eco ' ${numeri[@]} '
}
#Chiama la funzione con tre argomenti
valore_ritorno =$ ( funz 78 Quattro cinque 90 23 )
#Memorizza il valore restituito in un array
Leggere -UN nessuno <<< $val_ritorno
#Stampa i valori dell'array restituito
eco 'I valori dell'array sono:'
per In In ' ${numero[@]} '
Fare
eco ' $ dentro '
Fatto
Produzione :
Dopo l'esecuzione dello script viene visualizzato il seguente output:
Rendi vuoto l'array
Lo script seguente mostra il metodo per rendere vuoto un array utilizzando il comando 'unset'. Il numero totale di valori dell'array viene stampato prima e dopo aver svuotato l'array.
#!/bin/bash#Dichiara un array di numeri
dichiarare -UN numeri = ( 10 6 Quattro cinque 13 80 )
eco 'Numeri di valori di array: ${#numeri[@]} '
#Rende vuoto l'array
non settato numeri
eco 'Numero di valori dell'array dopo aver reso l'array vuoto: ${#numeri[@]} '
Produzione :
Il seguente output viene visualizzato dopo l'esecuzione dello script. Il numero di elementi dell'array è diventato 0 dopo aver vuoto l'array:
Conclusione
In questo tutorial vengono mostrati diversi metodi di dichiarazione, accesso, modifica e rimozione delle variabili dell'array nello script Bash utilizzando 15 semplici esempi. Ci auguriamo che questo tutorial aiuti gli utenti Bash a conoscere in dettaglio gli usi dell'array Bash.