Language: es Author: ~ferorge Email: ferorge@texto-plano.xyz Affiliation: https://sobnix.ar Date: 2025-08-26 copyright: 2025, ~ferorge, CC BY-SA 4.0. KeyWords: sobnix, guia, bash, variables css: lynx.css Quotes Language: es Base Header Level: 1 # Variables Ámbito temporal: Las variables exportadas existen solo en la sesión actual. Para hacerlas permanentes, añádelas a ~/.bashrc, ~/.bash_profile o /etc/environment. Herencia en subprocesos: Las variables exportadas se heredan en subshells y scripts, pero cambios en el subproceso no afectan al shell padre. ## Set Muestra todas las variables, funciones y opciones del shell actual. ### Casos de uso frecuentes * Configurar opciones del shell. * Mostrar variables locales y exportadas (no modifica variables de entorno). ### Sintaxis básica set [opciones] [argumentos] ### Ejemplos Listar todas las variables y funciones: ```console $ set BASH=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin saludar() { echo "Hola $1"; } ``` ### Opciones comunes: Habilita el modo debug (muestra comandos ejecutados): ```console $ set -x ``` Deshabilita el modo debug: ```console $ set +x ``` Cierra sesión ante errores: ```console $ set -e ``` ________________________________________________________________________________ ## unset Elimina una variable o función del shell actual. No afecta variables exportadas en procesos hijos. ### Sintaxis básica unset [opciones] nombre_variable ### Ejemplos Eliminar una variable local: ```console $ unset BASH ``` Eliminar una función: ```console $ unset -f saludar $ saludar Juan Error: command not found ``` ________________________________________________________________________________ ## env Muestra variables de entorno disponibles en el sistema. ### Sintaxis básica env [opciones] [nombre_variable=valor] [comando [argumentos]] ### Casos de uso frecuentes * Ejecutar comandos en un entorno __temporal__ modificado. * Mostrar variables exportadas (no variables locales). ### Ejemplos Listar variables de entorno: ```console $ env USER=usuario PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin LANG=es_ES.UTF-8 ``` Ejecutar un comando con variables personalizadas: ```console $ env DEBUG=1 ./mi_script.sh ``` ### Opciones comunes Eliminar una variable del entorno temporalmente: -i: Inicia con un entorno vacío (ignora variables existentes). ```console $ env -i ``` -u: Elimina una variable del entorno antes de ejecutar el comando. ```console $ env -u PATH ./mi_script.sh ``` ________________________________________________________________________________ ## export Exporta variables de entorno para que sean accesibles en procesos hijos. Permite configurar valores globales para aplicaciones. ### Sintaxis básica export [opciones] [nombre_variable=valor] ### Ejemplos Exportar una variable nueva: ```console $ export SALUDO="Hola Mundo" ``` Exportar una variable existente: ```console $ USUARIO="Carlos" $ export USUARIO ``` ### Opciones comunes -f: Exporta una función definida en el shell. ```console $ saludar() { echo "Hola $1"; } $ export -f saludar $ bash -c 'saludar Juan' Hola Juan ``` -n: Elimina una variable del entorno sin borrar su valor local. ```console $ export -n SALUDO ``` ## Licencia GNU __set__, __unset__, __env__ y __export__ están incluidos en bash y son distribuidos bajo licencia GPL-3. ________________________________________________________________________________ ### Autoría Variables © 2025 por \~ferorge [ferorge@texto-plano.xyz](mailto:ferorge@texto-plano.xyz).