Una guía para principiantes para usar funciones bash!
- 1370
- 301
- Norma Sedillo
Las funciones bash son una forma útil de agrupar una serie de comandos que usan a menudo juntos. Le permiten reutilizar el código, hacer que sus scripts sean más organizados y más fáciles de leer, y le ahorran tiempo al no tener que escribir los mismos comandos una y otra vez.
Para crear una función en bash, utiliza la palabra clave de función seguida del nombre de la función y un par de aparatos ortopédicos rizados que encierran los comandos que componen la función. Por ejemplo:
FUNCIÓN AUDADO echo "Hola, mundo!"123 | FUNCIÓN AUDADO echo "Hola, mundo!" |
Esto crea una función llamada 'saludo' que simplemente genera la cadena "Hola Mundo!" Cuando se llama.
Para llamar a una función, simplemente escriba su nombre en su script de shell. Por ejemplo:
saludo1 | saludo |
Esto ejecutará los comandos dentro del 'saludo' función, que en este caso es solo el comando echo.
Función BASH con argumentos
También puede pasar argumentos a una función enumerándolos dentro de los paréntesis cuando llame a la función. Por ejemplo:
FUNCIÓN DE AUDENCIA ECHO "Hola, $ 1!" Saludo" John Doe "12345 | FUNCIÓN DE AUDENCIA ECHO "Hola, $ 1!" Saludo" John Doe " |
Esto saldrá "Hola, John Doe!" porque el '$ 1' Variable dentro de la función se refiere al primer argumento pasado a la función (en este caso, "John Doe"). Puede usar $ 2, $ 3, etc. para referirse a los argumentos segundo, tercero y posterior.
También puede especificar los valores predeterminados para los argumentos si no se proporcionan cuando se llama a la función. Por ejemplo:
FUNCIÓN AUDADO name = $ 1: -World echo "Hola, $ Nombre!" Saludo de saludo" John "1234567 | FUNCIÓN AUDADO name = $ 1: -World echo "Hola, $ Nombre!" Saludo de saludo" John " |
La primera llamada a 'saludo' saldrá "Hola Mundo!" porque la variable de nombre se establece en el valor predeterminado del "mundo" si no se proporciona ningún argumento. La segunda llamada a 'saludo' saldrá "Hola John!" porque la variable de nombre se establece en el valor del primer argumento ("John").
Definir el tipo de argumento usando comandos de Builting
Utilizando el 'declarar' Comando builtin, también puede especificar los tipos de argumentos que una función espera. Por ejemplo:
función add declare -i num1 = $ 1 declarar -i num2 = $ 2 echo $ ((num1 + num2)) Agregar 1 21234567 | función add declare -i num1 = $ 1 declarar -i num2 = $ 2 echo $ ((num1 + num2)) Agregar 1 2 |
Esta función espera dos argumentos enteros y los agrega juntos usando el ps sintaxis de expansión aritmética. El 'Declarar -i' Flag le dice a Bash que trate las variables como enteros.
Funciones de Bash con variables locales
Las funciones bash también tienen variables locales, que son variables que solo son visibles dentro de la función y no son accesibles fuera de ella. Para crear una variable local, usa el 'local' Palabra clave seguida del nombre de la variable. Por ejemplo:
recuento de funciones local i para i en 1 ... 5; hacer echo $ i hice count echo $ i123456789 | recuento de funciones local i para i en 1 ... 5; hacer echo $ i hice counteco $ i |
La función de recuento crea una variable local llamada 'i' que se usa para contar de 1 a 5. El eco '$ i' la declaración fuera de la función no generará nada porque el 'i' La variable no se define fuera de la función.
Función con valores de retorno
También puede devolver un valor de una función utilizando el 'devolver' Comando Builtin. El valor del comando de retorno es el estado de salida de la función, que es un número que indica si la función se completó con éxito o encontró un error. A 'devolver' valor de '0' indica el éxito, mientras que un valor no cero indica un error.
Por ejemplo:
función agregar if [[$# -ne 2]]; luego devolver 1 fi declarar -i num1 = $ 1 declarar -i num2 = $ 2 return $ ((num1 + num2)) Agregar 1 2 eco $? Agregar 1 echo $?12345678910111213 | función agregar if [[$# -ne 2]]; luego devolver 1 fi declarar -i num1 = $ 1 declarar -i num2 = $ 2 return $ ((num1 + num2)) Agregar 1 2Co $?Agregar 1Co $? |
Las comprobaciones de funciones Agregar para asegurarse de que haya recibido exactamente dos argumentos. Si no lo ha hecho, devuelve un valor de 1 para indicar un error. De lo contrario, agrega los dos argumentos juntos y devuelve el resultado.
El 'Echo $?' Comando después de cada llamada a la función Agregar producirá el valor de retorno de la función. La primera llamada emitirá 3, mientras que la segunda llamada emitirá 1.
Imprimir valores en función
Además del valor de retorno, también puede usar el comando ECHO para imprimir un valor de una función. Por ejemplo:
función agregar if [[$# -ne 2]]; luego devolver 1 fi declarar -i num1 = $ 1 declarar -i num2 = $ 2 echo $ ((num1 + num2)) resultado = $ (agregue 10 20) Echo "El resultado es $ resultado."1234567891011 | función agregar if [[$# -ne 2]]; luego devolver 1 fi declarar -i num1 = $ 1 declarar -i num2 = $ 2 echo $ ((num1 + num2)) resultado = $ (agregue 10 20) Echo "El resultado es $ resultado." |
Este código saldrá "El resultado es 30." porque la función Agregar se llama usando la sustitución del comando (la sintaxis $ (...)) y el resultado se almacena en la variable de resultado.
Las funciones bash pueden ser muy poderosas y son una herramienta valiosa para organizar y simplificar sus guiones. Le permiten reutilizar el código, hacer que sus scripts sean más legibles y ahorrarle tiempo al no tener que escribir los mismos comandos una y otra vez.