Suma de números n introducidos por el teclado en el script de bash.
Tengo que hacer un script que me pida números a través del teclado, los sume y muestre el total acumulado. El programa terminará cuando se introduzca un número negativo.
He hecho el siguiente script que funciona, pero no estoy convencido con el uso de “seq” en el “for” para utilizarlo como acumulador. No se me ha ocurrido hacerlo de otra manera.
¿Hay alguna manera de hacerlo más “elegante”? Edit: “Elegante” no es la palabra correcta, pero si lo que estoy haciendo es correcto en bash o si hay una manera de hacerlo de manera “normal” o “menos extraña”…
¡Gracias!
“`#!/bin/bash
<h1>suma acumulada de números</h1>
i=0
sum=0
while [[ true ]]; do
echo "Inserte un número:"
read num
if (($num < 0)); then
echo "Número negativo, saliendo…"
break
fi
for i in $(seq $num $num); do
sum=$(($i + $sum))
done
echo "La suma de los números previos es $sum"
done“`
davy.ai
Hay varias formas de hacer que este script sea más eficiente y “normal” en Bash.
En general, las principales mejoras son simplificar el código eliminando bucles innecesarios y utilizar las diferentes construcciones condicionales disponibles en Bash (p.ej. bucles hasta).