logo

Funciones de bash

En este tema, hemos demostrado los conceptos básicos de las funciones bash y cómo funcionan en las secuencias de comandos del shell bash.

Las funciones en las secuencias de comandos bash son una excelente opción para reutilizar código. Una función Bash se puede definir como un conjunto de comandos que se pueden llamar varias veces dentro del script bash. El propósito de la función en bash es ayudarlo a hacer que sus scripts sean más legibles y evitar escribir el mismo código una y otra vez. También permite a los desarrolladores dividir un código largo y complicado en partes pequeñas que se pueden llamar cuando sea necesario. Las funciones se pueden llamar en cualquier momento y repetidamente, lo que nos permitirá reutilizar, optimizar y minimizar el código.

películas

A continuación se detallan algunos puntos clave sobre las funciones bash:

  • Se debe declarar una función en el script de shell antes de que podamos usarla.
  • Los argumentos se pueden pasar a las funciones y acceder a ellos dentro de la función como , , etc.
  • Las variables locales se pueden asignar dentro de la función, y el alcance de dichas variables será solo esa función en particular.
  • Los comandos integrados de Bash Shell se pueden anular mediante funciones.

Sintaxis

La sintaxis para declarar una función bash se puede definir en dos formatos:

1. El primer método comienza con el nombre de la función, seguido de paréntesis. Es el método más preferido y comúnmente utilizado:

 function_name () { commands } 

La versión de una sola línea se puede mencionar a continuación:

 function_name () { commands; } 

2. El segundo método comienza con la palabra reservada de la función, seguida del nombre de la función:

 function function_name { commands } 

La versión de una sola línea se puede mencionar a continuación:

 function function_name { commands; } 

En comparación con la mayoría de los lenguajes de programación, las funciones de Bash son algo limitadas. Entendamos el concepto con la ayuda de algunos ejemplos:

Ejemplo: Método 1

 #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

Producción

 Welcome to Javatpoint. 

Ejemplo: método 2

 #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

Producción

 Welcome to Javatpoint. 

Pasar argumentos

Como la mayoría de los lenguajes de programación, también podemos pasar los argumentos y procesar los datos en funciones bash. Podemos insertar los datos en la función de forma similar a como se pasan los argumentos de la línea de comando a un script bash.

Para pasar cualquier cantidad de argumentos a la función bash, debemos insertarlos justo después del nombre de la función. Debemos aplicar espacios entre el nombre de la función y los argumentos. También será una excelente opción utilizar comillas dobles alrededor de los argumentos para evitar que se analicen erróneamente los argumentos con espacios.

A continuación se detallan algunos puntos clave sobre cómo pasar argumentos a las funciones bash:

  • Se accede a los argumentos dados como , , ... $n, correspondientes a la posición de los argumentos después del nombre de la función.
  • La variable

    En este tema, hemos demostrado los conceptos básicos de las funciones bash y cómo funcionan en las secuencias de comandos del shell bash.

    Las funciones en las secuencias de comandos bash son una excelente opción para reutilizar código. Una función Bash se puede definir como un conjunto de comandos que se pueden llamar varias veces dentro del script bash. El propósito de la función en bash es ayudarlo a hacer que sus scripts sean más legibles y evitar escribir el mismo código una y otra vez. También permite a los desarrolladores dividir un código largo y complicado en partes pequeñas que se pueden llamar cuando sea necesario. Las funciones se pueden llamar en cualquier momento y repetidamente, lo que nos permitirá reutilizar, optimizar y minimizar el código.

    A continuación se detallan algunos puntos clave sobre las funciones bash:

    • Se debe declarar una función en el script de shell antes de que podamos usarla.
    • Los argumentos se pueden pasar a las funciones y acceder a ellos dentro de la función como $1, $2, etc.
    • Las variables locales se pueden asignar dentro de la función, y el alcance de dichas variables será solo esa función en particular.
    • Los comandos integrados de Bash Shell se pueden anular mediante funciones.

    Sintaxis

    La sintaxis para declarar una función bash se puede definir en dos formatos:

    1. El primer método comienza con el nombre de la función, seguido de paréntesis. Es el método más preferido y comúnmente utilizado:

     function_name () { commands } 

    La versión de una sola línea se puede mencionar a continuación:

     function_name () { commands; } 

    2. El segundo método comienza con la palabra reservada de la función, seguida del nombre de la función:

     function function_name { commands } 

    La versión de una sola línea se puede mencionar a continuación:

     function function_name { commands; } 

    En comparación con la mayoría de los lenguajes de programación, las funciones de Bash son algo limitadas. Entendamos el concepto con la ayuda de algunos ejemplos:

    Ejemplo: Método 1

     #!/bin/bash JTP () { echo 'Welcome to Javatpoint.' } JTP 

    Producción

     Welcome to Javatpoint. 

    Ejemplo: método 2

     #!/bin/bash function JTP { echo 'Welcome to Javatpoint.' } JTP 

    Producción

     Welcome to Javatpoint. 

    Pasar argumentos

    Como la mayoría de los lenguajes de programación, también podemos pasar los argumentos y procesar los datos en funciones bash. Podemos insertar los datos en la función de forma similar a como se pasan los argumentos de la línea de comando a un script bash.

    Para pasar cualquier cantidad de argumentos a la función bash, debemos insertarlos justo después del nombre de la función. Debemos aplicar espacios entre el nombre de la función y los argumentos. También será una excelente opción utilizar comillas dobles alrededor de los argumentos para evitar que se analicen erróneamente los argumentos con espacios.

    A continuación se detallan algunos puntos clave sobre cómo pasar argumentos a las funciones bash:

    • Se accede a los argumentos dados como $1, $2, $3... $n, correspondientes a la posición de los argumentos después del nombre de la función.
    • La variable $0 se mantiene reservada para el nombre de la función.
    • La variable $# se utiliza para contener el número de argumentos/parámetros posicionales proporcionados a la función.
    • Las variables $* y $@ se utilizan para contener todos los argumentos/parámetros dados a la función.
      • Cuando $* se usa con comillas dobles (es decir, '$*' ), se expande a una sola cadena separada por un espacio. Por ejemplo, '$1 $2 $n etc.'.
      • Cuando $@ se usa con comillas dobles (es decir, '$@' ), se expande a la cadena separada. Por ejemplo, '$1' '$2' '$n' etc.
      • Cuando $* y $# no se usan con comillas dobles, ambos son iguales.

    A continuación se muestra el código que ilustra el procedimiento sobre cómo pasar argumentos a funciones y acceder a los argumentos dentro de la función.

    Guión de bash

     #!/bin/bash #Script to pass and access arguments function_arguments() { echo $1 echo $2 echo $3 echo $4 echo $5 } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

    Producción

    Funciones de bash

    En este script, hemos agregado los valores 'Nosotros', 'bienvenido', 'usted', 'on' y 'Javatpoint' después de haber llamado a function_arguments. Esos valores se pasan al argumentos_función como parámetros y almacenados en una variable local. Sin embargo, a diferencia de otros lenguajes, el intérprete almacena los valores pasados ​​en variables predefinidas, que luego reciben nombres según la secuencia de parámetros pasados.

    Por ejemplo,

    'Nosotros' La palabra se almacena en la variable. 1 .
    'bienvenido' La palabra se almacena en la variable. 2 .
    'tú' La palabra se almacena en la variable. 3 .
    'en' La palabra se almacena en la variable. 4 .
    'Punto Java' La palabra se almacena en la variable. 5 .

    Alcance variable

    Las variables globales se definen como variables a las que se puede acceder desde cualquier lugar dentro del script, independientemente del alcance. Por defecto, todas las variables se definen como variables globales, incluso si están declaradas dentro de la función. También podemos crear variables como una variable local. Las variables locales se pueden declarar dentro del cuerpo de la función con el símbolo ?local? palabra clave cuando se asignan por primera vez. Solo son accesibles dentro de esa función. Podemos crear variables locales con el mismo nombre en diferentes funciones. Para agregar una variable local, podemos usar la siguiente sintaxis:

     local var_name= 

    Para comprender mejor cómo funciona el alcance de las variables en Bash Scripting, consulte el siguiente ejemplo:

    Guión de bash

     #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

    Producción

    Funciones de bash

    Según el resultado, si configuramos una variable local dentro del cuerpo de la función con el mismo nombre que una variable global existente, tendrá prioridad sobre la variable global. Las variables globales se pueden modificar dentro de la función.

    Valores de retorno

    La mayoría de los lenguajes de programación tienen el concepto de devolver un valor para las funciones. Significa que la función tiene que enviar los datos a la ubicación de llamada original. A diferencia de las funciones en lenguajes de programación 'reales', la función Bash no brinda soporte para devolver un valor cuando se llama. Sin embargo, nos permiten establecer un estado de retorno que es similar a cómo sale un programa o comando con un estado de salida. Cuando se completa una función bash, su valor de retorno es el estado de la última declaración ejecutada en la función. Devuelve 0 para el estado de éxito y un número decimal distinto de cero en el rango de 1 a 255 en caso de error.

    El estado de la devolución se puede indicar utilizando la palabra clave 'return' y se asigna a la variable $?. La declaración de retorno finaliza la función y funciona como estado de salida de la función.

    Por ejemplo, considere el siguiente código:

    Guión de bash

     #!/bin/bash #Setting up a return status for a function print_it () { echo Hello $1 return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

    Producción

    Funciones de bash

    Otra mejor opción para devolver un valor de una función es enviar el valor a salida estándar usando eco o imprimirf comandos, como se muestra a continuación:

    Guión de bash

     #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

    Producción

     Welcome to Javatpoint. 

    Comandos primordiales

    Tenemos una opción para anular los comandos de bash creando una función con el mismo nombre que el comando que vamos a anular. Por ejemplo, si queremos anular el comando 'echo', entonces tenemos que crear una función con el nombre 'echo'.

    Este concepto de anular los comandos bash puede resultar útil en algunos escenarios, como cuando queremos utilizar un comando con opciones específicas. Además, cuando no nos gusta proporcionar todo el comando con opciones varias veces dentro del script. En tales casos, podemos anular el comando bash incorporado por comando con opciones. Ahora, comprendamos el concepto de anular los comandos en Bash Shell Scripting con la ayuda de algunos ejemplos:

    Ejemplo

    En este ejemplo, anulamos el comando 'echo' y agregamos la marca de tiempo en forma de argumento al comando 'echo'.

    Guión de bash

     #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo $1 } echo 'Welcome to Javatpoint.' 

    Producción

    Funciones de bash

    Conclusión

    En este tema, demostramos acerca de la función Bash. Una función Bash se considera como un bloque de código reutilizable desarrollado para realizar una operación específica. Una vez definido, se puede llamar varias veces dentro de un script.


    se mantiene reservada para el nombre de la función.
  • La variable $# se utiliza para contener el número de argumentos/parámetros posicionales proporcionados a la función.
  • Las variables $* y $@ se utilizan para contener todos los argumentos/parámetros dados a la función.
    • Cuando $* se usa con comillas dobles (es decir, '$*' ), se expande a una sola cadena separada por un espacio. Por ejemplo, ' $n etc.'.
    • Cuando $@ se usa con comillas dobles (es decir, '$@' ), se expande a la cadena separada. Por ejemplo, '' '' '$n' etc.
    • Cuando $* y $# no se usan con comillas dobles, ambos son iguales.

A continuación se muestra el código que ilustra el procedimiento sobre cómo pasar argumentos a funciones y acceder a los argumentos dentro de la función.

Guión de bash

 #!/bin/bash #Script to pass and access arguments function_arguments() { echo  echo  echo  echo  echo  } #Calling function_arguments function_arguments 'We''welcome''you''on''Javatpoint.' 

Producción

Funciones de bash

En este script, hemos agregado los valores 'Nosotros', 'bienvenido', 'usted', 'on' y 'Javatpoint' después de haber llamado a function_arguments. Esos valores se pasan al argumentos_función como parámetros y almacenados en una variable local. Sin embargo, a diferencia de otros lenguajes, el intérprete almacena los valores pasados ​​en variables predefinidas, que luego reciben nombres según la secuencia de parámetros pasados.

Por ejemplo,

'Nosotros' La palabra se almacena en la variable. 1 .
'bienvenido' La palabra se almacena en la variable. 2 .
'tú' La palabra se almacena en la variable. 3 .
'en' La palabra se almacena en la variable. 4 .
'Punto Java' La palabra se almacena en la variable. 5 .

Alcance variable

Las variables globales se definen como variables a las que se puede acceder desde cualquier lugar dentro del script, independientemente del alcance. Por defecto, todas las variables se definen como variables globales, incluso si están declaradas dentro de la función. También podemos crear variables como una variable local. Las variables locales se pueden declarar dentro del cuerpo de la función con el símbolo ?local? palabra clave cuando se asignan por primera vez. Solo son accesibles dentro de esa función. Podemos crear variables locales con el mismo nombre en diferentes funciones. Para agregar una variable local, podemos usar la siguiente sintaxis:

 local var_name= 

Para comprender mejor cómo funciona el alcance de las variables en Bash Scripting, consulte el siguiente ejemplo:

Guión de bash

texto subrayado css
 #!/bin/bash v1='A' v2='B' my_var () { local v1='C' v2='D' echo 'Inside Function' echo 'v1 is $v1.' echo 'v2 is $v2.' } echo 'Before Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' my_var echo 'After Executing the Function' echo 'v1 is $v1.' echo 'v2 is $v2.' 

Producción

Funciones de bash

Según el resultado, si configuramos una variable local dentro del cuerpo de la función con el mismo nombre que una variable global existente, tendrá prioridad sobre la variable global. Las variables globales se pueden modificar dentro de la función.

Valores de retorno

La mayoría de los lenguajes de programación tienen el concepto de devolver un valor para las funciones. Significa que la función tiene que enviar los datos a la ubicación de llamada original. A diferencia de las funciones en lenguajes de programación 'reales', la función Bash no brinda soporte para devolver un valor cuando se llama. Sin embargo, nos permiten establecer un estado de retorno que es similar a cómo sale un programa o comando con un estado de salida. Cuando se completa una función bash, su valor de retorno es el estado de la última declaración ejecutada en la función. Devuelve 0 para el estado de éxito y un número decimal distinto de cero en el rango de 1 a 255 en caso de error.

El estado de la devolución se puede indicar utilizando la palabra clave 'return' y se asigna a la variable $?. La declaración de retorno finaliza la función y funciona como estado de salida de la función.

Por ejemplo, considere el siguiente código:

Guión de bash

 #!/bin/bash #Setting up a return status for a function print_it () { echo Hello  return 5 } print_it User print_it Reader echo The previous function returned a value of $? 

Producción

Funciones de bash

Otra mejor opción para devolver un valor de una función es enviar el valor a salida estándar usando eco o imprimirf comandos, como se muestra a continuación:

Guión de bash

 #!/bin/bash print_it () { local my_greet='Welcome to Javatpoint.' echo '$my_greet' } my_greet='$(print_it)' echo $my_greet 

Producción

 Welcome to Javatpoint. 

Comandos primordiales

Tenemos una opción para anular los comandos de bash creando una función con el mismo nombre que el comando que vamos a anular. Por ejemplo, si queremos anular el comando 'echo', entonces tenemos que crear una función con el nombre 'echo'.

Este concepto de anular los comandos bash puede resultar útil en algunos escenarios, como cuando queremos utilizar un comando con opciones específicas. Además, cuando no nos gusta proporcionar todo el comando con opciones varias veces dentro del script. En tales casos, podemos anular el comando bash incorporado por comando con opciones. Ahora, comprendamos el concepto de anular los comandos en Bash Shell Scripting con la ayuda de algunos ejemplos:

Ejemplo

En este ejemplo, anulamos el comando 'echo' y agregamos la marca de tiempo en forma de argumento al comando 'echo'.

Guión de bash

 #!/bin/bash #Script to override command using function echo () { builtin echo -n `date +'[%m-%d %H:%M:%S]'` ': ' builtin echo  } echo 'Welcome to Javatpoint.' 

Producción

Funciones de bash

Conclusión

En este tema, demostramos acerca de la función Bash. Una función Bash se considera como un bloque de código reutilizable desarrollado para realizar una operación específica. Una vez definido, se puede llamar varias veces dentro de un script.