Declaración de Variables y Alcance en Bash Shell
Clase 6 de 43 • Curso de Programación en Bash Shell
Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
Aprende, paso a paso y sin rodeos, cómo manejar variables en Bash con enfoque práctico: define variables, entiende su alcance y configúralas a nivel de sistema y de usuario. Con ejemplos claros mencionados por el profesor Marco Toscano, dominarás comandos clave como sudo, export, chmod y la ejecución de scripts con ./.
¿Qué diferencia hay entre variables de entorno y de usuario en Bash?
Las variables se dividen en dos categorías: variables de entorno (a nivel del sistema operativo) y variables de usuario (dentro de un script). Las de entorno afectan a todos los usuarios y sesiones; las de usuario viven solo mientras corre el script que las define.
- Variables de entorno: se configuran en archivos del sistema como /etc/profile. Requieren privilegios de administrador con sudo. Se exportan con el comando export.
- Variables de usuario: se declaran directamente en el script sin tipo previo. Solo existen en ese proceso.
- Convención: nombres en MAYÚSCULAS para entorno. Minúsculas o mixtas para variables internas del script.
- Sensibilidad a mayúsculas/minúsculas: Linux es case-sensitive; comandos y nombres deben respetar minúsculas.
¿Cómo definir una variable de entorno en /etc/profile?
Para que esté disponible en todas las sesiones, añade la variable y expórtala.
# Editar con privilegios
sudo nano /etc/profile
# Dentro de /etc/profile (comentado para claridad)
# Variable de entorno
CURSO_NAME="Programación Bash"
export CURSO_NAME
# Guardar y salir (en editores tipo Vim: :wq)
# Efectos al reiniciar sesión o con reboot/login
Puntos clave: - Usa sudo para editar archivos de sistema. - export publica la variable al entorno de login. - Tras un reinicio de sesión, podrás leer CURSO_NAME en cualquier terminal.
¿Cómo declarar variables en un script Bash y mostrarlas?
En Bash, las variables se crean asignando un valor directo. No se usan tipos. Para imprimir, utiliza echo con $NOMBRE.
#!/usr/bin/env bash
# Programa para revisar la declaración de variables
opcion=0
nombre="Marco"
echo "Opción: $opcion"
echo "Nombre: $nombre"
Haz el archivo ejecutable y ejecútalo:
chmod +x variables.sh
./variables.sh
Buenas prácticas: - Citas para cadenas con espacios. - Usa echo "texto $variable" para interpolar valores. - Recuerda dar permisos con chmod +x cada vez que crees un nuevo script.
¿Qué comandos de apoyo se usaron en el flujo?
- cp para copiar un script y reutilizar estructura.
- ls para listar archivos y validar permisos.
- cat para inspeccionar el contenido de los scripts.
- Insert/Esc y :wq para editar y guardar en editores tipo Vim.
¿Cómo funciona el alcance de variables y el comando export entre scripts?
Por defecto, las variables del script solo existen en su proceso. Si quieres que otra ejecución o script hijo las vea, usa export en el proceso padre antes de lanzar el siguiente script.
Primer script (exporta nombre y llama a otro):
#!/usr/bin/env bash
# variables.sh
opcion=0
nombre="Marco"
# Disponible para procesos hijos
export nombre
echo "Opción: $opcion"
echo "Nombre: $nombre"
# Llamar al segundo script
./variables_2.sh
Segundo script (lee la variable exportada):
#!/usr/bin/env bash
# variables_2.sh
echo "Opción nombre pasada del script anterior: $nombre"
Pasos y consideraciones: - export marca nombre para heredarse a procesos hijos. - El segundo script no declara nombre; lo recibe del entorno del primero. - Si no exportas, $nombre no estará disponible en variables_2.sh. - Asegúrate de dar permisos de ejecución a ambos scripts.
¿Tienes dudas o quieres compartir tu forma de organizar variables y entorno en Bash? Deja tu comentario y cuéntanos tu experiencia.