Array associativo in bash

Array associativo in bash

Una variabile di array viene utilizzata per archiviare più dati con indice e il valore di ciascun elemento array è accessibile dal valore dell'indice corrispondente di quell'elemento. L'array che può archiviare il valore stringa come indice o chiave è chiamato array associativo. Un array associativo può essere dichiarato e utilizzato nello script bash come altri linguaggi di programmazione. Questa funzione viene aggiunta in Bash 4. In che modo l'array associativo può essere dichiarato e accessibile in bash è spiegato in questo tutorial.

Controlla la versione corrente di Bash prima di iniziare la parte successiva di questo tutorial. Esegui il comando seguente dal terminale per verificare la versione installata di Bash. Se la versione bash installata nel sistema operativo è inferiore a 4, devi prima installare la versione 4 Bash per continuare questo tutorial.

$ Bash -Vversion

Il seguente output mostra che la versione corrente di Bash è 4.4.19.

Dichiarazione e inizializzazione dell'array associativo:

Un array associativo può essere dichiarato in bash usando il dichiarare La parola chiave e gli elementi dell'array possono essere inizializzati al momento della dichiarazione dell'array o dopo aver dichiarato la variabile dell'array. Il seguente script creerà un array associativo denominato Assarray1 e i quattro valori di array sono inizializzati individualmente.

$ Dichiara -a Assarray1
$ Assarray1 [frutta] = mango
$ Assarray1 [Bird] = Cockatail
$ Assarray1 [fiore] = rosa
$ Assarray1 [animale] = tigre

Produzione

Il seguente script inizializzerà l'array associativo, Assarrat2 Al momento della dichiarazione di array. Qui, al momento della dichiarazione dell'array sono definiti tre valori di array con chiavi.

$ dichiara -a assarray2 = ([hdd] = samsung [monitor] = dell [tastiera] = a4tech)

Produzione:

Accesso all'array associativo:

È possibile accedere ad elementi di array di un array associativo individualmente o utilizzando qualsiasi loop. Questi due modi sono mostrati in questa parte del tutorial. Le chiavi e i valori dell'array possono essere stampati separatamente e insieme.

I seguenti comandi stamperanno due valori dell'array, Assarray1 (dichiarato in precedenza) specificando il valore chiave.

$ echo $ Assarray1 [Bird]
$ echo $ Assarray1 [Flower]

Produzione:

La seguente output apparirà dopo aver eseguito i comandi sopra.

A volte, è necessario stampare tutte le chiavi o tutti i valori dell'array. Tutte le chiavi di un array possono essere stampate utilizzando l'espansione del parametro Loop o Bash. Il seguente primo comando stamperà tutte le chiavi dell'array in ciascuna riga utilizzando per loop e il secondo comando stamperà tutti i tasti di array in una riga utilizzando l'espansione dei parametri BASH. Qui, '!'Il simbolo viene usato per leggere le chiavi dell'array associativo.

$ per la chiave in "$ !Assarray1 [@] "; do echo $ key;
$ echo "$ !Assarray1 [@] "

Produzione:

La seguente output apparirà dopo aver eseguito i comandi sopra.

Tutti i valori di un array possono essere stampati utilizzando l'espansione del parametro Loop o Bash. Il seguente primo comando stamperà tutti i valori dell'array in ciascuna riga utilizzando per loop e il secondo comando stamperà tutti i valori di array in una riga utilizzando l'espansione dei parametri BASH.

$ per val in "$ Assarray1 [@]"; Echo $ val; Fatto
$ echo "$ assarray1 [@]"

Produzione:

La seguente output apparirà dopo aver eseguito i comandi sopra.

Sia le chiavi che i valori di un array associativo possono essere stampati utilizzando per loop. Il seguente script stamperà tutti i valori con le chiavi dell'array associativo denominato Assarray1. Qui, ogni chiave dell'array verrà analizzata in ogni fase del loop e la chiave viene utilizzata come indice dell'array per leggere il valore della chiave corrispondente.

$ per la chiave in "$ !Assarray1 [@] "; do echo" $ key => $ Assarray1 [$ key] ";

Produzione:

Il seguente output apparirà dopo aver eseguito lo script.

Aggiunta di nuovi dati in array associativo:

Un nuovo elemento di array può essere aggiunto facilmente nell'array associativo dopo aver dichiarato e inizializzato l'array. I seguenti comandi controlleranno i valori dell'array corrente dell'array, Assarray2, Aggiungi un nuovo valore, "Logitech"Con la chiave,"Topo"E controlla gli elementi attuali dell'array.

$ echo "$ assarray2 [@]"
$ Assarray2+= ([mouse] = logitech)
$ echo "$ assarray2 [@]"

Produzione:

La seguente output apparirà dopo aver eseguito i comandi.

Eliminazione dei dati dall'array associativo:

Qualsiasi valore dell'elemento dell'array associativo può essere rimosso in base al valore chiave. Il comando 'Unset' viene utilizzato per eliminare il valore particolare dell'array associativo. Vengono utilizzati i seguenti comandi Controlla il valore corrente dell'array con la chiave, "Tenere sotto controllo"Elimina il valore utilizzando il comando Unset ed eseguire nuovamente il comando" echo "per verificare che il valore viene eliminato o no. $ echo $ assarray2 [monitor]

$ unset Assarray2 [Monitor]
$ echo $ assarray2 [monitor]

Produzione:

La seguente output apparirà dopo aver eseguito i comandi.

Trovare l'indice mancante dall'array associativo:

L'indice o la chiave mancante di un array è disponibile utilizzando un'istruzione condizionale. Il seguente script controllerà il tasto dell'array, "Tenere sotto controllo" esiste o no. Il valore di questa chiave viene rimosso nell'esempio precedente. Quindi, la condizione "se" restituirà falsa e non trovata "verrà stampata.

$ if [$ Assarray2 [Monitor]+_]; Quindi eco "trovato"; else eco "non trovato"; fi

Produzione:

Il seguente output apparirà dopo aver eseguito lo script.

Rimozione dell'array associativo:

Qualsiasi array associativo può essere rimosso utilizzando il comando "Unset". Il seguente primo comando stamperà tutti i valori dell'array denominato Assarray1 in una singola riga se esiste l'array. Il secondo comando rimuoverà l'array. Il terzo comando viene utilizzato per verificare che l'esistenza dell'array esiste. Se l'array viene rimosso, non verrà visualizzata alcuna uscita.

$ echo "$ assarray1 [@]"
$ unset Assarray1
$ echo "$ assarray1 [@]"

Produzione:

La seguente output apparirà dopo aver eseguito i comandi.

Conclusione

Quando è necessario archiviare più dati della coppia di valore chiave in bash, è meglio utilizzare l'array associativo per la memorizzazione dei dati. In che modo il programmatore può dichiarare e inizializzare l'array associativo, le chiavi o i valori dell'array di analisi o entrambi, aggiungere ed eliminare elementi di array e rimuovere l'array sono mostrati in questo tutorial utilizzando vari script. Spero, il lettore sarà in grado di utilizzare l'array associativo in bash dopo aver letto questo tutorial.