Script por lotes: variables locales frente a globales

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *