Eventuali duplicati:
How to sort an array in BASHCome trovare il numero più alto in una matrice?
mi hanno numeri nella matrice 10 30 44 44 69 12 11...
. Come visualizzare il massimo dalla matrice?
echo $NUM //result 69
Eventuali duplicati:
How to sort an array in BASHCome trovare il numero più alto in una matrice?
mi hanno numeri nella matrice 10 30 44 44 69 12 11...
. Come visualizzare il massimo dalla matrice?
echo $NUM //result 69
È possibile utilizzare sort
per scoprirlo.
#! /bin/bash
ar=(10 30 44 44 69 12 11)
IFS=$'\n'
echo "${ar[*]}" | sort -nr | head -n1
In alternativa, cercare la massima te:
max=${ar[0]}
for n in "${ar[@]}" ; do
((n > max)) && max=$n
done
echo $max
Grazie mille E se ci fosse una stringa invece di numeri? ar = ("dsasd" "dsdas" "dasdsadaasdadadsadad") – Charlie
@Charlie: Quindi è possibile utilizzare il confronto di stringhe '[[$ n> $ max]]'. Inoltre, è possibile rimuovere l'inizializzazione di max. – choroba
O forse ar [0] se c'è un solo elemento ... – choroba
provare questo:
a=(10 30 44 44 69 12 11 100)
max=0
for v in ${a[@]}; do
if (($v > $max)); then max=$v; fi;
done
echo $max
risultato in 100
Ecco lo stesso problema della risposta sopra - c'è un problema con max = 0 - cosa succede se tutti gli argomenti sono negativi? .. Ecco una soluzione migliore - https://stackoverflow.com/a/40719447/2107205 – mato
http://stackoverflow.com/questions/7442417/how-to-sort-an-array-in-bash – paul
che cosa hai provato fino ad ora? Prova a seguire l'esempio [rubber duck] (http://www.codinghorror.com/blog/2012/03/rubber-duck-problem-solving.html). – Pureferret