Unix / Linux - Utilizzo di array di shell

In questo capitolo, discuteremo come usare gli array di shell in Unix. Una variabile di shell è in grado di contenere un singolo valore. Queste variabili sono chiamate variabili scalari.

Shell supporta un diverso tipo di variabile chiamata array variable. Questo può contenere più valori contemporaneamente. Gli array forniscono un metodo per raggruppare un insieme di variabili. Invece di creare un nuovo nome per ogni variabile richiesta, è possibile utilizzare una singola variabile di matrice che memorizza tutte le altre variabili.

Tutte le regole di denominazione discusse per le variabili di shell sarebbero applicabili durante la denominazione degli array.

Definizione dei valori degli array

La differenza tra una variabile array e una variabile scalare può essere spiegata come segue.

Supponiamo che tu stia cercando di rappresentare i nomi di vari studenti come un insieme di variabili. Ciascuna delle singole variabili è una variabile scalare come segue:

NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

Possiamo usare un singolo array per memorizzare tutti i nomi sopra menzionati. Di seguito è riportato il metodo più semplice per creare una variabile di matrice. Questo aiuta ad assegnare un valore a uno dei suoi indici.

array_name[index]=value

In questo caso array_name è il nome dell'array, index è l'indice dell'elemento dell'array che si desidera impostare e value è il valore che si desidera impostare per quell'elemento.

Ad esempio, i seguenti comandi:

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"

Se stai usando il ksh shell, ecco la sintassi dell'inizializzazione dell'array -

set -A array_name value1 value2 ... valuen

Se stai usando il bash shell, ecco la sintassi dell'inizializzazione dell'array -

array_name=(value1 ... valuen)

Accesso ai valori degli array

Dopo aver impostato una variabile di array, accedervi come segue:

${array_name[index]}

Qui array_name è il nome dell'array e index è l'indice del valore a cui accedere. Di seguito è riportato un esempio per comprendere il concetto:

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Index: ${NAME[0]}"
echo "Second Index: ${NAME[1]}"

L'esempio sopra genererà il seguente risultato:

$./test.sh
First Index: Zara
Second Index: Qadir

È possibile accedere a tutti gli elementi di un array in uno dei seguenti modi:

${array_name[*]} ${array_name[@]}

Qui array_name è il nome dell'array a cui sei interessato. L'esempio seguente ti aiuterà a capire il concetto:

#!/bin/sh

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="Daisy"
echo "First Method: ${NAME[*]}" echo "Second Method: ${NAME[@]}"

L'esempio sopra genererà il seguente risultato:

$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy