En este artículo, veremos las diferencias entre las variables locales y globales en las secuencias de comandos bash.
Variable: el nombre dado a una ubicación de memoria que se utiliza para almacenar valores en un programa se llama variables. Almacena información que se puede llamar y manipular donde sea necesario en el programa.
Ámbito: La parte o extensión del programa donde la variable es accesible o se dice que está viva.
Según el alcance de la variable, es de dos tipos:
Variable local: aquellas variables cuyo alcance está dentro de la función donde se declara (se puede acceder dentro del bloque o función declarada en el programa)
Variable global: estas variables se pueden acceder globalmente en todo el programa.
Variable local frente a global:
Variable local | Variable global |
---|---|
La palabra clave ‘local’ se utiliza para declarar la variable local. | No se utiliza ninguna palabra clave. |
Se declara dentro de la función. | Puede declararse fuera de la función en cualquier parte del programa. |
No prueba el intercambio de datos. | Proporciona intercambio de datos |
Estos se almacenan en la pila. | El compilador almacena estas variables en la ubicación de memoria fija. |
Es necesario pasar parámetros | No es necesario pasar parámetros |
El valor de basura se almacena si no se inicializa. | El cero se almacena de forma predeterminada si no se inicializa. |
Si se modifica dentro de una función, esa modificación no se reflejará en otra función. | Si se modifica en una función, esa modificación será visible en todo el programa. |
Ventajas de usar Variable Local
- Garantiza que los valores de las variables permanecerán intactos mientras se ejecuta la tarea.
- En entornos multitarea donde cada tarea puede cambiar el valor de una variable. No producirá resultados no deseados ya que cada tarea puede crear su propia instancia de la variable local.
- El mismo nombre de variable se puede utilizar en diferentes tareas.
- Libera memoria tan pronto como se ejecuta.
Desventajas de usar la variable Local
- Hace que la depuración sea un proceso complejo.
- Debido a la restricción del intercambio de datos entre módulos, los datos comunes deben pasar repetidamente.
- Tienen un alcance muy limitado.
Ventajas de usar Variable Global
- Se puede acceder desde todas las funciones o módulos del programa.
- Uno necesita declarar la variable global solo una vez fuera de los módulos.
- Se utiliza para almacenar valores constantes para mantener la consistencia.
- Es útil cuando muchas funciones tienen acceso a los mismos datos.
Desventaja de usar Variable Global
- Toda la variable global que se declara dentro del programa permanece en la memoria hasta que se completa la ejecución. Esto puede causar problemas de falta de memoria.
- La modificación de datos es fácil, puede ser fácilmente modificada por cualquier tarea o función. Esto puede producir resultados no deseados en entornos multitarea.
- La interrupción de la variable global debido a la refactorización provocará el problema de cambiar todos los módulos asociados.
Veamos algún ejemplo para entender mejor las variables globales y locales.
Función
La función es el conjunto de comandos que se pueden llamar varias veces. Se utiliza para evitar escribir el mismo bloque de código una y otra vez.
Sintaxis:
function_name () { commands } OR function function_name { commands }
Tanto el formato de las funciones de escritura es correcto en bash scripting.
Ejemplo 1: Crear variable local
La variable local se declara usando la palabra clave antes del nombre de la variable
#!/bin/bash function first () { local x="HelloNew" echo "Inside first function x=$x" } first echo "Outside first function x = $x"
Producción:
Inside first function x=HelloNew Outside first function x =
Ejemplo 2: creación de una variable global
#!/bin/bash function first () { x="Hello Geek" echo "Inside first function x= $x" } first echo "Outside first function x = $x"
Producción:
Inside first function x=Hello Geek Outside first function x = Hello Geek
Ejemplo 3: Múltiples variables locales y globales en un programa
#!/bin/bash function first () { local x="Hello Geek" local y= "Enjoy" echo "Inside first function x= $x" echo "Inside first function y= $y" } x="Hello Romy" y="good to see you!" first echo "Outside first function x = $x" echo "Outside first function y= $y"
Producción:
Inside first function x= Hello Geek Inside first function y= Outside first function x = Hello Romy Outside first function y= good to see you!
Sobrescritura de variable
Vea el siguiente ejemplo:
#!/bin/bash x="Hellooooo!!" echo " Outside first function x =$x" function first () { x="Hello Geek" } first echo "After overwriting, x = $x"
Producción:
Outside first function x =Hellooooo!! After overwriting, x = Hello Geek
Del ejemplo, podemos ver que el valor de x se sobrescribe. Para evitar que se sobrescriban las variables, podemos hacer que nuestra variable sea de solo lectura escribiendo ‘declare -r’ antes de la declaración de la variable.
Ejemplo:
#!/bin/bash x="Hellooooo!!" echo " Outside first function x =$x" function first () { declare -r x="Hello Geek" } first echo "After overwriting, x = $x"
Producción:
Outside first function x =Hellooooo!! After overwriting, x = Hellooooo!!
Publicación traducida automáticamente
Artículo escrito por romy421kumari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA