Código: Seleccionar todo
#! /bin/bash
clear
temp=(`v.db.select map=cuenca_intercepto2 col=distancia | grep -oE '[0-9.-]*'`)
length=$(expr `echo ${#temp[*]}` - 1)
mayor=0
for i in $(seq 0 2 $length)
do
suma=$(echo "scale=5; (${temp[$i]} + ${temp[$i+1]})*100000" | bc)
suma=${suma/.*}
if [ $suma -gt $mayor ]
then
let "mayor = $suma"
fi
done
echo $(echo "scale=5; $mayor/100000" | bc)
Su ejecución la comento en:
Script de bash para determinar valor máximo en columnas con v.db.select (GRASS-QGIS)
Se da especial énfasis (porque fueron los escollos que tuve que sortear para que el script hiciera lo que yo quería) a la manera como bash considera la implementación y manejo de los arreglos en los cálculos, como determinar la extensión del arreglo como límite de secuencia en los bucles for, como establecer la sintaxis para que recorra el bucle de 2 en 2 en lugar del default de 1 en 1 (existe una sintaxis tipo C que también funciona pero que no es incluida aquí), cómo efectuar operaciones en punto flotante para que estas no sean consideradas como string (uso de la calculadora de precisión arbitraria bc), cómo convertir números en punto flotante en enteros y cómo efectuar comparaciones en punto flotante con if/then a pesar de que estas no son permitidas en bash. Espero que sea útil a otros.
Saludos