GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de variables Bash:6 ejemplos prácticos de variables locales y globales de Bash

Este artículo es parte de nuestra serie continua de tutoriales bash. Como cualquier otro lenguaje de programación, Bash también proporciona variables.

Las variables Bash brindan almacenamiento temporal para la información que se necesitará durante la vida útil del programa.

Sintaxis:

VARNAME=VALUE

Nota: No debe haber ningún espacio alrededor del signo “=” en la asignación de variables. Cuando usa VAR=VALUE, Shell ve el “=” como un símbolo y trata el comando como una asignación de variable. Cuando usa VAR =VALUE, Shell asume que VAR debe ser el nombre de un comando e intenta ejecutarlo.

Shell no se preocupa por el tipo de variables. Las variables pueden almacenar cadenas, enteros o números reales.

Ejemplo.1 Uso de la asignación de variables Bash simple

El siguiente script crea una variable llamada LISTA y le asigna el valor “/var/opt/bin”. Para acceder a las variables, simplemente prefije el nombre de la variable con $, lo que le dará el valor almacenado en esa variable.

$ cat sample.sh
#!/bin/bash
LIST="/var/opt/bin/"
ls -l $LIST

Ejecute la secuencia de comandos anterior, que enumerará /var/opt/bin en formato largo, como se muestra a continuación.

$ ./sample.sh
total 8
drwxrwsr-x 2 bin  bin 4096 Jan 29 06:43 softwares
drwxr-sr-x 5 root bin 4096 Sep  2  2009 llist

Alcance variable de Bash:local y global

En Bash, las variables no tienen que ser declaradas. Pero, cuando acceda a la variable que no se usa hasta ahora, no recibirá ningún mensaje de advertencia o error. En su lugar, mostrará un valor en blanco.

Ejemplo 2. Valores en blanco en variables bash

$ cat var1.sh
#!/bin/sh
echo "Variable value is: $VAR1"
VAR1="GEEKSTUFF"
echo "Variable value is: $VAR1"

$ ./var1.sh
Variable value is:
Variable value is: GEEKSTUFF

Como se muestra arriba, inicialmente la variable tendrá un valor en blanco, después de asignarla, puede obtener sus valores. El comando de exportación se usa para exportar variables desde un shell interactivo. export muestra el efecto en el alcance de las variables.

Ejemplo 3. Variables Bash sin exportar

Asigne una variable con un valor en un shell interactivo e intente acceder al mismo en su script de shell.

$ VAR2=LINUX

$ cat var2.sh
#!/bin/bash
echo "VAR2=$VAR2"
VAR2=UNIX
echo "VAR2=$VAR2"

Ahora, ejecute el script anterior como se muestra a continuación.

$ ./var2.sh
VAR2=
VAR2=UNIX

Aún así obtendrá un valor en blanco para la variable VAR2. El shell almacena la variable VAR2 con LINUX solo en el shell actual. Durante la ejecución de var2.sh, genera el shell y ejecuta el script. Entonces, la variable VAR2 no tendrá el valor en el shell generado. Debe exportar la variable para que la herede otro programa, incluido un script de shell, como se muestra a continuación.

Ejemplo 4. Exportación de una variable Bash

$ export VAR2=LINUX

$ cat var2.sh
#!/bin/bash
echo "VAR2=$VAR2"
VAR2=UNIX
echo "VAR2=$VAR2"

Ahora ejecute el script anterior.

$ ./var2.sh
VAR2=LINUX
VAR2=UNIX
$
$echo $VAR2
LINUX

Ahora, puede notar que después de la ejecución del script de shell var2.sh, el valor de VAR2 es LINUX. Porque las variables no se devolverán a su shell interactivo, a menos que ejecute el script en el shell actual.

Declaración de una variable Bash

Usando la declaración de declaración en bash, podemos limitar el valor asignado a las variables. Restringe las propiedades de las variables. La opción en una declaración de declaración se usa para determinar el tipo de una variable.

Sintaxis:

declare option variablename
  • declare es una palabra clave
  • opción podría ser:
    • -r variable de solo lectura
    • -i variable entera
    • -una variable de matriz
    • -f para funciones
    • -x declara y exporta a comandos posteriores a través del entorno.

Ejemplo 5. Declaración de variable Bash usando declare

$ cat declar.sh
#!/bin/bash
declare -i intvar
intvar=123 # Assigning integer value.
echo $intvar
intvar=12.3 #Trying to store string type value to an integer variable
echo $intvar

declare -r rovar=281
rovar=212 # Trying to change the readonly variable.

De la siguiente ejecución, puede notar el mensaje de error cuando asigna datos no válidos a una variable.

$ ./declar.sh
123
t.sh: line 6: 12.3: syntax error: invalid arithmetic operator (error token is ".3")
123
t.sh: line 11: rovar: readonly variable

Variables globales de Bash

Las variables globales también se denominan variables de entorno, que estarán disponibles para todos los shells. El comando printenv se usa para mostrar todas las variables de entorno.

$ printenv
SHELL=/bin/bash
HISTSIZE=1000
SSH_TTY=/dev/pts/1
HOME=/root
LOGNAME=root
CVS_RSH=ssh

Variables Bash locales

Las variables locales son visibles solo dentro del bloque de código. local es una palabra clave que se utiliza para declarar las variables locales. En una función, una variable local tiene significado solo dentro de ese bloque de funciones.

Ejemplo 6. Variables Bash Globales y Locales

$ cat localvar.sh
#!/bin/bash
pprint()
{
  local lvar="Local content"
  echo -e "Local variable value with in the function"
  echo $lvar
  gvar="Global content changed"
  echo -e "Global variable value with in the function"
  echo $gvar
}

gvar="Global content"
echo -e "Global variable value before calling function"
echo $gvar
echo -e "Local variable value before calling function"
echo $lvar
pprint
echo -e "Global variable value after calling function"
echo $gvar
echo -e "Local variable value after calling function"
echo $lvar

Ejecute el script anterior,

$ sh t.sh
Global variable value before calling function
Global content
Local variable value before calling function

Local variable value with in the function
Local content
Global variable value with in the function
Global content changed
Global variable value after calling function
Global content changed
Local variable value after calling function

En el resultado anterior, las variables locales solo tendrán un valor vacío antes y después de llamar a la función. Su alcance es solo dentro de la función. Desapareció de la función, mientras que la variable global tiene el valor actualizado incluso después de la ejecución de la función.


Linux
  1. Tutorial de comandos agradable y renice de Linux (7 ejemplos)

  2. Tutorial de Programación C 4 - Variables y Memoria

  3. El último tutorial de Bash Array con 15 ejemplos

  4. Tutorial de referencia y desreferenciación de matrices de Perl con ejemplos prácticos

  5. Exportar una variable desde bash y usarla en Python

Bash For Loop con ejemplos prácticos

Diferencia entre la definición de variables Bash con y sin exportación

Bash Scripting - Variables explicadas con ejemplos

16 Ejemplos Prácticos y Útiles del Comando Echo en Linux

Tutorial de introducción a Bash Scripting con 5 ejemplos prácticos

Tutorial de funciones de Bash Shell con 6 ejemplos prácticos