¿Hay una declaración de "goto" en Bash?
A "ir a" La declaración es una construcción de programación que permite a los programadores saltar a una parte específica del código. Se considera una característica controvertida debido a su potencial para dificultar el código de leer y comprender. Sin embargo, puede ser útil en algunos casos, especialmente cuando se trata de flujos de control complejos.
En Bash, no hay soporte directo para el "ir a" Declaración, en su lugar, Bash proporciona construcciones alternativas que pueden lograr el mismo efecto que un "ir a" declaración.
Por ejemplo, el 'romper' y 'continuar' Las declaraciones permiten a los programadores saltar de los bucles o omitir las iteraciones en un bucle. Del mismo modo, Bash proporciona el 'devolver' Declaración para salir de una función y volver al código de llamadas.
#!/bin/bash
# Defina una función para agregar dos números
función add_numbers
if [$# -ne 2]; entonces
Echo "Error: dar dos números para agregar"
Return 1 # Función de salida con estado de error
FI
resultado = $ (($ 1 + $ 2))
Echo $ resultado
resultado = $ (add_numbers 10 20)
Si [$? -eq 0]; entonces
echo "resultado: $ resultado"
demás
echo "la función falló con el código de error $?"
FI
El código declara una función llamada add_numbers Eso requiere dos argumentos, verificaciones si se proporcionan exactamente dos argumentos, agregue los dos números y almacena el resultado en la variable de resultado.
El script luego llama al add_numbers función con dos argumentos y verifica el estado de retorno de la función utilizando el ps?' variable. Si la función tiene éxito (el estado de retorno 0), entonces imprime el resultado, de lo contrario imprime un mensaje de error con el estado de retorno de la función:
Otra alternativa al "ir a" La declaración en Bash es el caso declaración Como la instrucción de caso es similar a una instrucción Switch en otros lenguajes de programación y permite a los programadores ejecutar bloques de código específicos en función del valor de una variable. El declaración de caso se puede utilizar para lograr un efecto similar a un "ir a" declaración. A continuación se muestra el código que solo agrega dos enteros utilizando la misma lógica en la que Declaración de goto obras:
#!/bin/bash
# Lea dos números del usuario
Leer -P "Ingrese el primer número:" Num1
Leer -P "Ingrese el segundo número:" Num2
función add_numbers
resultado = $ (($ 1 + $ 2))
# emite el resultado al usuario
echo "resultado: $ resultado"
Caso $ num1 $ num2 en
*[!0-9]*)
echo "Error: ingrese enteros válidos"
;;
*)
add_numbers $ num1 $ num2
;;
ESAC
Primero el Leer Comando se usa para pedirle al usuario que ingrese dos números y luego el add_numbers La función agrega los dos números y emite el resultado al usuario. Para verificar si ambos números son válidos, el código Integers usa el declaración de caso. Si cualquiera de los números no es un entero válido, entonces el script genera un mensaje de error y si ambos números son enteros válidos, entonces el add_numbers Se llama a la función para agregar los números juntos y generar el resultado.
Mediante el uso del declaración de caso Para verificar la entrada, el script evita la necesidad de un "ir a" Declaración para saltar a una parte específica del código en función del valor de entrada:
Conclusión
Bash no proporciona soporte directo para el Declaración de "goto" Sin embargo, Bash proporciona construcciones alternativas como una ruptura, continuar, retorno y declaraciones de casos que pueden lograr efectos similares como un Declaración de "goto". Como con cualquier lenguaje de programación, es esencial usar estas construcciones juiciosamente y evitar usarlas en exceso. El uso adecuado de las construcciones de flujo de control puede hacer que el código sea más legible y mantenible, mientras que el uso excesivo puede dificultar y depurar el código.