Duplicar posible:
How to sort an array in BASH¿Cómo encontrar el número más alto en una matriz?
que tienen números en la matriz 10 30 44 44 69 12 11...
. Cómo mostrar el más alto de la matriz?
echo $NUM //result 69
Duplicar posible:
How to sort an array in BASH¿Cómo encontrar el número más alto en una matriz?
que tienen números en la matriz 10 30 44 44 69 12 11...
. Cómo mostrar el más alto de la matriz?
echo $NUM //result 69
Se puede utilizar para averiguar sort
.
#! /bin/bash
ar=(10 30 44 44 69 12 11)
IFS=$'\n'
echo "${ar[*]}" | sort -nr | head -n1
Alternativamente, la búsqueda de la máxima personalmente:
max=${ar[0]}
for n in "${ar[@]}" ; do
((n > max)) && max=$n
done
echo $max
Muchas gracias ¿Y si hubiera una cadena en lugar de números? ar = ("dsasd" "dsdas" "dasdsadaasdadadsadad") – Charlie
@Charlie: Entonces puede usar la comparación de cadenas '[[$ n> $ max]]'. Además, puede eliminar la inicialización de max. – choroba
O tal vez ar [0] si solo hay un elemento ... – choroba
probar esto:
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
resultado en 100
Este es el mismo problema que en la respuesta anterior: hay un problema con max = 0, ¿y si todos los argumentos son negativos? ... Aquí hay una solución mejor - https://stackoverflow.com/a/40719447/2107205 – mato
http://stackoverflow.com/questions/7442417/how-to-sort-an-array-in-bash – paul
Lo Tiene intentado hasta ahora? Intenta seguir el ejemplo [rubber duck] (http://www.codinghorror.com/blog/2012/03/rubber-duck-problem-solving.html). – Pureferret