Ámbito variable de bash

Abid Ullah 15 febrero 2024
  1. Alcance variable de Bash en Linux
  2. Cómo declarar una variable en Bash
  3. el Alcance de las Variables en Bash
  4. Tipos de Variables
Ámbito variable de bash

En el artículo, aprenderemos sobre el ámbito de la variable bash en Linux. También aprendemos cómo declarar una variable en el script bash en el sistema operativo Linux.

Además, veremos diferentes tipos de variables y cómo acceder a las variables locales y globales en el script bash usando el sistema operativo Linux. Comencemos con el concepto de variables usado en Linux.

Alcance variable de Bash en Linux

Las variables son espacios de almacenamiento temporal para que varios tipos de datos se manejen en cualquier lenguaje de programación. Una variable se correlaciona frecuentemente con dos entidades separadas: un tipo de datos y su valor.

El tipo de datos describe los datos guardados en una variable, mientras que el valor representa los datos en sí. Al declarar una variable en la programación de Bash, no necesitamos especificar el tipo de datos explícitamente.

Esto se debe a que el lenguaje de programación detecta el tipo de datos por sí mismo. En bash, por ejemplo, si asignamos un número a una variable, se trata como un número entero de inmediato.

Cómo declarar una variable en Bash

En bash podemos declarar una variable con el nombre que queramos usando el signo igual '=', y con el valor que queramos asignarle. Aquí hay algunas reglas que podemos seguir para declarar variables en bash:

  • Las letras mayúsculas y minúsculas, los números, los guiones bajos y los decimales son caracteres aceptables para los nombres de variables.
  • Se recomienda el uso de letras mayúsculas para nombres de variables en scripts Bash.
  • No dejar espacio alrededor del signo igual '='.
  • Todas las palabras clave predefinidas están restringidas, por ejemplo, if, else, local, etc.

A continuación se muestra el ejemplo de declaración de una variable de cadena en bash. Abrimos la terminal y declaramos la variable. No olvide que no se nos permite poner ningún espacio alrededor del signo igual ('=') al declarar variables.

$ _name=abid

Usamos echo para obtener la salida de la variable.

$ echo $_name

Producción :

abid

Declarar una variable Integer en bash.

$ _age=24

Asimismo, con echo, también podemos obtener la salida de esta variable.

$ echo $_age

Producción :

24

el Alcance de las Variables en Bash

El alcance de una variable Bash puede ser local o global, como en cualquier otro lenguaje de programación. No importa dónde se declaren en nuestro script Bash.

Todas las variables en bash tienen un alcance global por defecto. Esto indica que una variable se puede utilizar dentro de cualquier función en un script bash, incluso si se define en medio del script.

Para decirlo de otra manera, podemos argumentar que en bash, no siempre tenemos que declarar una variable al comienzo de un script para que su alcance sea global.

Además, debemos usar explícitamente la palabra clave local al declarar una variable en bash si queremos que el alcance de esa variable se limite a una función en particular, lo que significa que ninguna otra función en ese script o en cualquier otro lugar debería poder acceder a ella. .

Esto asegurará que el alcance de la variable esté restringido a la función en la que se definió.

Tipos de Variables

Hay principalmente tres tipos de alcance variable que necesitamos saber.

  1. Variables locales
  2. Variables globales
  3. Variables del entorno

Accediendo a la Variable Local en Bash

Podemos acceder a las variables locales solo dentro del bloque de código en el que las hemos declarado. Por ejemplo, si declaramos una variable dentro de nuestro script Bash, no podremos acceder a ella fuera del código.

Código de ejemplo:

#!/bin/bash
echo "Learning the scope of local and global variables."

function_localVar(){
    echo "Within the function function_localVar"
    echo "Assign a variable with local keyword to a variable name: varLocal"
    local varLocal=27
    echo "Assign a variable without local keyword to a variable name: varLocal_wo"
    varLocal_wo=9
    echo "Printing within the function."
    echo "Value assigned to one with local keyword varLocal = $varLocal and without local keyword varLocal_wo = $varLocal_wo"
    echo "Exiting function_localVar"
}

glob_var=91
echo "Start of the code!"
echo "Global Variable = $glob_var"
echo "Local variable before calling function to one with local keyword varLocal = ** $varLocal ** and without local keyword varLocal_wo = ** $varLocal_wo **"
echo "Calling the function."

function_localVar

echo "Printing outside the function."
echo "Value assigned to one with local keyword varLocal = $varLocal and without local keyword varLocal_wo = $varLocal_wo"

Producción :

Learning the scope of local and global variables.
Start of the code!
Global Variable = 91
Local variable before calling function to one with local keyword varLocal = **  ** and without local keyword varLocal_wo = **  **
Calling the function.
Within the function function_localVar
Assign a variable with local keyword to a variable name: varLocal
Assign a variable without local keyword to a variable name: varLocal_wo
Printing within the function.
Value assigned to one with local keyword varLocal = 27 and without local keyword varLocal_wo = 9
Exiting function_localVar
Printing outside the function.
Value assigned to one with local keyword varLocal = and without local keyword varLocal_wo = 9

ámbito de la variable bash - variable local

Queda claro a partir del siguiente código que tal vez la palabra clave local establece el alcance local, e incluso cuando la variable se lee fuera de la función donde se ha definido como local, devuelve vacío.

Acceso a variables de alcance global en Bash

Podemos acceder a las variables globales en todo el script bash. Este ejemplo a continuación nos ayuda a comprender cómo funciona/funciona el alcance de las variables globales en bash.

Código de ejemplo:

var1='Abid'
var2='Ali'
my_function () {
    local var1='Micheal'
    var2='Den'
    echo "Inside function: var1: $var1, var2: $var2"
}
echo "Before executing the function: var1: $var1, var2: $var2"
my_function
echo "After executing the function: var1: $var1, var2: $var2"

Producción :

Before executing the function: var1: Abid, var2: Ali
Inside function: var1: Micheal, var2: Den
After executing the function: var1: Abid, var2: Den

ámbito de la variable bash - variable global

Los resultados anteriores del fragmento de código nos llevan a la siguiente conclusión:

  • Siempre que se establezca una variable local con el mismo nombre que una variable global existente dentro del alcance de la función, la variable local tendrá prioridad.
  • De hecho, se pueden realizar cambios en las variables globales dentro de la función.

Variable ambiental

Las variables de entorno (ENV) esencialmente especifican cómo funciona el entorno. En bash, una variable de entorno puede tener un alcance global o local.

Podemos acceder desde cualquier lugar dentro del entorno de una terminal a un ENV de alcance global generado en esa terminal. Debido a que opera en el contexto delimitado por esa terminal, puede usarse en cualquier secuencia de comandos, programa o proceso.

Cualquier aplicación o proceso que se ejecute en la terminal no puede acceder a un ENV de ámbito local especificado allí. Solo el terminal en el que hemos definido la variable tiene acceso a ella.

Configuración de variables de entorno

Variable de entorno como alcance global:

$ export COUNTRY=USA
or
$ set NAME=Abid

Variable de entorno como ámbito local:

$ NAME=Abid

Ahora, el punto es cómo mostrar las variables de entorno. Podemos mostrar la variable de entorno como las variables normales usando echo.

$ echo $COUNTRY 

Producción :

USA

La salida de este comando será el valor que le hemos asignado a esta variable PAÍS, que es EE.UU..

Mostrar todas las variables de entorno

Podemos mostrar todos los ENVs usando tres comandos diferentes.

  1. // for displaying all the global Environment Variables only
    $ printenv
    
  2. // We use this command to display local and global Environment Variables
    $ set
    
  3. // for displaying all global Environment Variables
    $ env
    
Autor: Abid Ullah
Abid Ullah avatar Abid Ullah avatar

My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.

LinkedIn

Artículo relacionado - Bash Variable