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.
¿Qué son las variables locales en el shell de Linux?
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.
Declaración y asignación de variables
Para definir una variable en el shell de Unix, simplemente usa la siguiente sintaxis:
NOMBRE=valor
Es importante notar que:
- No debe haber espacios entre el nombre de la variable, el signo
=y el valor. - Los nombres de variables suelen escribirse en mayúsculas por convención, pero no es obligatorio.
- Para hacer referencia al valor de una variable, se usa el signo
$.
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.
Uso de comillas
Al asignar valores a variables, el uso de comillas es importante:
- Comillas dobles (
"") permiten la expansión de variables y el uso de caracteres especiales. - Comillas simples (
'') 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
Variables solo dentro de un script
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.
Eliminación de variables
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.
Ejemplo práctico
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.

Conclusión
Las variables locales en el shell son herramientas esenciales para almacenar y manejar información temporalmente en scripts y sesiones. Recuerda siempre:
- A diferencia de las variables de entorno, estas solo están disponibles a nivel de sesión.
- No usar espacios en la asignación (
NOMBRE=valory noNOMBRE = valor). - Usar comillas adecuadamente para evitar problemas con caracteres especiales.
- Las variables solo existen dentro del entorno en el que se declaran.
unsetelimina 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.