Las variables son una parte fundamental del shell, ya que permiten almacenar y manipular información dentro de un script o sesión. En esta entrada, exploraremos las variables locales en el shell de Linux, cómo se declaran, cómo se usan y algunas mejores prácticas para su gestión.
Las variables en el shell de Linux funcionan de manera similar a las de cualquier lenguaje de programación: almacenan valores que pueden ser utilizados y modificados dentro de un script o sesión. Las variables locales son aquellas que solo existen dentro del proceso del shell en el que fueron definidas y no afectan otros procesos o sesiones.
Por ejemplo, si defines una variable dentro de un script o en la terminal, esta solo estará disponible dentro de ese entorno y no persistirá una vez que cierres la sesión.
Para definir una variable en el shell de Unix, simplemente usa la siguiente sintaxis:
NOMBRE=valor
Es importante notar que:
= y el valor.$.Ejemplo:
MI_VARIABLE="Hola, mundo"
echo $MI_VARIABLE
Salida:
Hola, mundo
Si intentas acceder a una variable que no ha sido definida, no mostrará ningún valor.
Al asignar valores a variables, el uso de comillas es importante:
"") permiten la expansión de variables y el uso de caracteres especiales.'') tratan todo el contenido como texto literal.Ejemplo:
NOMBRE="Juan"
MENSAJE1="Hola, $NOMBRE"
MENSAJE2='Hola, $NOMBRE'
echo $MENSAJE1 # Expande la variable
echo $MENSAJE2 # Muestra el texto literal
Salida:
Hola, Juan
Hola, $NOMBRE
Cuando defines una variable en la terminal, esta solo está disponible en la sesión actual del shell. Sin embargo, dentro de un script, las variables solo existen mientras el script se ejecuta.
Ejemplo de script (mi_script.sh):
#!/bin/bash
SALUDO="¡Bienvenido!"
echo $SALUDO
Al ejecutar ./mi_script.sh, la variable SALUDO existirá solo dentro del script. Si luego intentas hacer echo $SALUDO en la terminal, no mostrará nada porque la variable no es una variable de entorno.
Para eliminar una variable y liberar su espacio en memoria, usa el comando unset:
MI_VARIABLE="Texto"
unset MI_VARIABLE
echo $MI_VARIABLE # No mostrará nada
Esto es útil para asegurarte de que una variable ya no se use accidentalmente más adelante en un script.
En el siguiente ejemplo, veremos la declaración de la variable TEST a nivel de shell, posteriormente imprimimos el valor de la misma usando echo.

Si tuvieramos un shell script de este tipo y lo corrieramos en esta misma sesión:
#!/bin/bash
echo $TEST
No se mostraría ningún resultado ya que la variable solo existe a nivel local, y por lo tanto no se comparte a otros subprocesos.
Si cerramos esta instancia del shell, e intentamos obtener el valor de la variable, no se muestra nada ya que la misma dejó de existir.

Las variables locales en el shell son herramientas esenciales para almacenar y manejar información temporalmente en scripts y sesiones. Recuerda siempre:
NOMBRE=valor y no NOMBRE = valor).unset elimina una variable si ya no la necesitas.Entender y gestionar correctamente las variables locales te ayudará a escribir scripts más eficientes y evitar errores en el manejo de datos en Unix.