Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: BALTA00 en 27 Septiembre 2016, 20:38 pm



Título: ¿Existe una función similar a goto de batch en bash?
Publicado por: BALTA00 en 27 Septiembre 2016, 20:38 pm
Estoy haciendo un pequeño script, y no sé como crear bucles infinitos en bash, a ver si me daban una ayudada

Sé que en batch sería algo tipo

Código:
:saludo
echo "Hola, ¿Cómo estás?"
goto respuesta

:respuesta
echo "Bien, ¿y tú?, ¿Me saludas de nuevo para crear un bucle infinito de saludos?"
goto saludo

¿Cómo lo hago en bash?


Título: Re: ¿Existe una función similar a goto de batch en bash?
Publicado por: warcry. en 27 Septiembre 2016, 20:59 pm
por ejemplo

Código
  1. #!bin/bash
  2.  
  3. pregunta(){
  4. echo -e "¿que tal?
  5.  
  6. "
  7. }
  8.  
  9. respuesta(){
  10. echo -e "genial
  11.  
  12. "
  13. }
  14.  
  15. while true
  16. do
  17.  
  18. pregunta
  19.  
  20. respuesta
  21.  
  22. done


Título: Re: ¿Existe una función similar a goto de batch en bash?
Publicado por: BALTA00 en 27 Septiembre 2016, 22:39 pm
por ejemplo

Código
  1. #!bin/bash
  2.  
  3. pregunta(){
  4. echo -e "¿que tal?
  5.  
  6. "
  7. }
  8.  
  9. respuesta(){
  10. echo -e "genial
  11.  
  12. "
  13. }
  14.  
  15. while true
  16. do
  17.  
  18. pregunta
  19.  
  20. respuesta
  21.  
  22. done

Muchas gracias, era exactamente lo que quería saber...

Con este código lo que esté entre do y done se ejecutará de manera infinita?

si yo colocase:

Código:
do

pregunta

pregunta

respuesta

respuesta
done

Código:
de manera infinita me diría
¿que tal?
¿que tal?
genial
genial

¿Cierto?


Título: Re: ¿Existe una función similar a goto de batch en bash?
Publicado por: warcry. en 27 Septiembre 2016, 23:04 pm
Correcto

Tu primero defines las funciones que necesites

En mi caso defino dos funciones

Una que se llama pregunta y otra que se llama respuesta.

Luego creo el bucle infinito

"mientras sea cierto"
 "ejecuta"
Aquí es donde se llama a la función o funciones por el nombre sin el ()
"hecho"