Come trovare la lunghezza di un array in script di shell
Trovare la lunghezza di un array nella shell può essere utile per loop su elementi ed eseguire operazioni su di essi. Inoltre, può essere usato per verificare che un array abbia un certo numero di elementi prima di procedere con uno script, di seguito sono riportati alcuni modi per farlo:
Metodo 1: utilizzando il parametro incorporato
Il modo più semplice per trovare la lunghezza di un array è utilizzare il parametro incorporato shell $ #array [@] o $ #array [*]. I simboli @ e * vengono utilizzati per fare riferimento a tutti gli elementi dell'array.
#!/Bin/Bash
my_array = (rosso blu rosa)
echo "La lunghezza dell'array è $ #my_array [@]"
Ecco l'output dello script shell che utilizza il suo parametro integrato per ottenere la lunghezza di un array:
Metodo 2: usando il comando EXPR
Il comando EXPR viene utilizzato per valutare un'espressione e stampare il risultato all'output standard. Possiamo usare il comando wc -w per contare il numero di elementi nell'array e passare il risultato al comando EXPR per ottenere la lunghezza dell'array.
#!/Bin/Bash
my_array = (rosso blu rosa)
lunghezza = $ (echo $ my_array [@] | wc -w)
echo "La lunghezza dell'array è $ (exp $ lunghezza)"
Ecco l'output dello script shell che utilizza l'EXPR per ottenere la lunghezza di un array:
Metodo 3: usando per loop
Possiamo anche trovare la lunghezza di un array usando un loop. In questo metodo, ripetiamo ogni elemento dell'array e contiamo il numero di elementi.
#!/Bin/Bash
my_array = (rosso blu rosa)
lunghezza = 0
Per I in "$ my_array [@]"
Fare
lunghezza = $ ((lunghezza+1))
Fatto
Echo "La lunghezza dell'array è $ lunghezza"
Conclusione
In questo articolo, abbiamo esplorato diversi modi per trovare la lunghezza di un array negli script di shell. Abbiamo usato il parametro incorporato shell $ #array [@], il comando EXPR e un ciclo per trovare la lunghezza dell'array. Tutti e tre i metodi sono ugualmente efficaci e dipende dalle preferenze e dai requisiti dell'utente per scegliere il metodo appropriato.