Impara a conoscere gli array Bash: come dichiararli, manipolarli ed eliminarli.

Gli array sono archivi dati utilizzati per contenere valori che hanno qualche relazione tra loro. A differenza della maggior parte dei linguaggi di programmazione, gli array Bash possono memorizzare valori di diversi tipi di dati nello stesso array.

Bash ha due tipi di array: array indicizzati e array associativi. Per gli array indicizzati, gli indici iniziano da 0 a (n-1), come è comune nella maggior parte dei linguaggi. Tuttavia, gli array in Bash sono scarsi. Ciò significa che è possibile assegnare l'(n-1)esimo elemento dell'array senza aver assegnato l'(n-2)esimo elemento.

In questo tutorial imparerai come lavorare con gli array in Bash. Iniziamo.

Definizione di array

Esistono tre modi per definire gli array in Bash. Similmente alle variabili Bash, gli array devono essere inizializzati al momento della creazione. L'unica eccezione a ciò è se stai utilizzando il file dichiarare parola chiave. È inoltre necessario assicurarsi che non venga lasciato spazio su entrambi i lati dell'operatore di assegnazione mentre si inizializza l'array.

instagram viewer

Il primo metodo consiste nell'assegnazione composta di valori al nome dell'array. Ci sono due modi per farlo:

arr1 = (3 5 6 7)
# or this
arr2 = ([3]=5 [1]=8 [0]=7)

Nella prima assegnazione composta i valori tra parentesi tonde vengono assegnati in sequenza dall'indice [0] A [3].

Nella seconda, invece, i valori vengono assegnati ad un indice nell'ordine indicato dal programmatore.

Imparentato: Cosa sono le variabili d'ambiente in Linux? Tutto quello che devi sapere

Se hai prestato attenzione a arr2, noterai che index [2] è stato escluso. L'array verrà comunque creato senza che vengano generati errori. Questo compito è in realtà una dimostrazione dello spazio di archiviazione sparso negli array Bash di cui abbiamo parlato in precedenza.

Si noti che non ci sono virgole che separano i valori dell'array. I valori sono semplicemente separati da spazi.

Il secondo metodo dichiara indirettamente l'array. Puoi semplicemente iniziare ad assegnare valori agli elementi null dell'array:

arr3[0]=Toyota
arr3[1]=Honda
arr3[2]=Mercedes

Il terzo modo è dichiarare esplicitamente l'array con la parola chiave dichiarare:

declare -a arrayName

Operazioni sugli array

Per accedere agli elementi dell'array, utilizzare questa sintassi: ${array[indice]}

fruits=(mango banana apples)
echo${fruits[1]}# output is banana

Se invece è necessario stampare l'intero array, utilizzare il file @ simbolo come il

indice Di ${array[indice]}:

echo${fruits[@]}

Per scoprire il numero di elementi nell'array, utilizzare il # simbolo come mostrato di seguito:

echo ${#fruits[1]}

Potrebbe anche essere necessario modificare gli elementi dell'array: vedere l'esempio seguente su come farlo. È simile a come aggiungi un nuovo elemento. L'unica differenza è che stai sostituendo un valore con un indice che ha già un valore.

fruits[1]=pears

Array associativi

Un array che ha valori arbitrari come chiavi è chiamato array associativo. Questi array vengono utilizzati per archiviare coppie chiave-valore correlate.

Imparentato: Come trasformare gli script Bash in app cliccabili utilizzando AppleScript

Per definire un array associativo, è necessario farlo esplicitamente utilizzando la parola chiave dichiarare.

# associative array called animal
declare -A animal
animal[giraffe]=tall
animal[lion]=brave
animal[cheetah]=fast

Puoi accedere a un elemento membro nello stesso modo in cui fai gli array indicizzati:

echo${animal[lion]}

Se desideri stampare tutti i valori, puoi utilizzare il file @ simbolo come mostrato di seguito:

echo${animal[@]}

Se vuoi stampare tutte le chiavi dell'array, puoi usare il file @ E ! simboli come illustrato di seguito:

echo${!animal[@]}

Per trovare il numero di elementi dell'array associativo, usa la stessa sintassi che utilizzeresti con gli array indicizzati (dimostrata nell'ultima sezione).

Se desideri eliminare un elemento dell'array o l'intero array, utilizza la sintassi seguente:

unset arrayName[Key] # delete array item
unset arrayName # delete entire array

Utilizzando il comando printf

Potresti aver notato che l'intero articolo utilizza il file eco comando per inviare i dati alla shell. IL eco Il comando funziona per questo tutorial ma ha poche funzionalità e flessibilità quando si tratta di formattare le stringhe.

comunque, il printf Il comando offre opzioni di formattazione più specifiche che rendono lo scripting Bash un gioco da ragazzi. Imparare il printf migliorerà sicuramente la tua esperienza di formattazione delle stringhe e l'efficienza in Bash.