Como frenar un bucle for con un bucle while en bash linux

Iniciado por mario290386, 5 Mayo 2019, 13:58 PM

0 Miembros y 1 Visitante están viendo este tema.

mario290386

Hola a todos, tengo un problema con unos bucles y me estoy volviendo loco ya que he intentado varios metodos y no consigo solucionarlo.

De forma muy resumida lo que hace mi código es pedirle a un usuario que introduzca unos valores que son los GPIO de una raspberry, que posteriormente manejaré mediante un bucle for para ir encendiéndolos, hasta aquí bien, el problema viene cuando intento parar el bucle for mediante un while.

Lo que pretendo es que el bucle for siga contando de 1 hasta 27, en 27 debería  salir del bucle for, es decir, aunque el usuario introduzca un valor superior a 27, siempre debería de finalizar el bucle for en 27.
Este es el código:

read -p "introduce valor inicial: " gini

read -p "introduce valor final: " gfin

max=0

while [ $max -le 27 ];do
   
ssh $hotkey pi@192.168.5.1 "sudo bash -c;   for ((  i=$gini; i<=$gfin; i++ )); do echo \$i; echo \$i >/sys/class/gpio/export;sleep 0.1; echo out >/sys/class/gpio/gpio\$i/direction; echo \$max; let "max++"; done"

break

done


Lo que me sucede con este código es que el for sigue contando después de llegar al valor 27, he añadido una variable "max" para intentar frenar al for, pero ni con esas, cualquier pista me seria de gran ayuda, gracias y un saludo!