Variables
1. ¿Qué es una variable en Bash?
Una variable en Bash es un nombre que guarda un valor (texto, números, rutas, resultados de comandos…). Sirve para reutilizar información dentro de un script.
📌 En Bash no se declara el tipo de la variable y no puede haber espacios alrededor del =.
nombre="Ana"
edad=30
2. Cómo usar (imprimir) una variable
Para acceder al valor de una variable se usa el símbolo $.
nombre="Ana"
echo $nombre
Salida:
Ana
👉 Es muy recomendable usar llaves para evitar confusiones:
echo "Hola, ${nombre}"
3. Variables de texto y números
Bash no distingue tipos, todo es texto:
numero=5
echo $numero
Si quieres hacer operaciones aritméticas:
a=5
b=3
resultado=$((a + b))
echo "La suma es $resultado"
4. Pedir datos al usuario (read)
Para pedir información por teclado se usa read.
Ejemplo básico
#!/bin/bash
echo "¿Cómo te llamas?"
read nombre
echo "Hola, $nombre"
Mostrar un mensaje y leer en una sola línea
read -p "Introduce tu edad: " edad
echo "Tienes $edad años"
Leer sin mostrar lo que se escribe (contraseñas)
read -s -p "Contraseña: " password
echo
echo "Contraseña guardada"
5. Variables por defecto (variables del sistema)
Bash tiene variables ya definidas por el sistema.
Algunas de las más importantes
| Variable | Significado |
|---|---|
$USER |
Usuario actual |
$HOME |
Carpeta personal |
$PWD |
Directorio actual |
$SHELL |
Intérprete de comandos |
$PATH |
Rutas de búsqueda de comandos |
$LANG |
Idioma del sistema |
Ejemplo
echo "Usuario: $USER"
echo "Directorio personal: $HOME"
echo "Estás en: $PWD"
6. Variables especiales (muy importantes)
Estas variables se usan mucho en scripts.
| Variable | Significado |
|---|---|
$0 |
Nombre del script |
$1, $2, … |
Argumentos del script |
$# |
Número de argumentos |
$@ |
Todos los argumentos |
$? |
Código de salida del último comando |
$$ |
PID del script |
Ejemplo: argumentos del script
Script saludar.sh:
#!/bin/bash
echo "Hola $1"
Ejecutar:
./saludar.sh Ana
Salida:
Hola Ana
Ejemplo: comprobar número de argumentos
#!/bin/bash
if [ $# -lt 1 ]; then
echo "Debes pasar al menos un nombre"
exit 1
fi
echo "Hola $1"
7. Variables y comandos (sustitución de comandos)
Puedes guardar el resultado de un comando en una variable.
fecha=$(date)
echo "Hoy es: $fecha"
O forma antigua (menos recomendada):
fecha=`date`
8. Variables locales y de entorno
Variable local (solo en el script)
mensaje="Hola"
Variable de entorno (heredada por otros procesos)
export mensaje="Hola"
Puedes verla con:
env
9. Valores por defecto (muy útil)
Asignar un valor si la variable está vacía:
nombre=${nombre:-"Invitado"}
echo "Hola $nombre"
10. Ejemplo completo sencillo
#!/bin/bash
read -p "Nombre: " nombre
read -p "Edad: " edad
echo "Usuario: $USER"
echo "Hola $nombre, tienes $edad años"
echo "Estás en el directorio $PWD"
Resumen rápido
✔ Las variables se asignan con =
✔ Se accede con $variable
✔ read sirve para pedir datos
✔ Bash tiene muchas variables internas útiles
✔ Se pueden pasar argumentos al script
Para saber más:
https://atareao.es/tutorial/scripts-en-bash/variables-en-bash/