Contenido
Gracias a las variables y a la entrada de usuario, los scripts dejan de ser estáticos y pueden reaccionar según datos dinámicos.
1. Variables en Bash
Una variable es un nombre que almacena un valor. En Bash no se declaran tipos (no hay enteros, strings, booleanos, etc.). Todo se trata como texto y el tipo se deduce según el uso.
Para crear una variable:
variable=valor
No se debe dejar espacio alrededor del =. Para usar la variable:
echo $variable
Ejemplo práctico:
nombre="Ana"
echo "Hola $nombre"
Salida:
Hola Ana
Variables útiles del sistema
Existen variables ya definidas por el entorno, por ejemplo:
$USER→ usuario actual$HOME→ directorio personal$SHELL→ shell en uso$PWD→ directorio actual$RANDOM→ número aleatorio
Ejemplo:
echo "Tu usuario es $USER y estás en $PWD"
2. Parámetros Posicionales
Son valores que se pasan al script al ejecutarlo desde la terminal. Permiten que un mismo script funcione para diferentes entradas sin modificar su contenido.
Ejemplo de ejecución:
./mi_script.sh valor1 valor2 valor3
Dentro del script:
$1serávalor1$2serávalor2$3serávalor3
$# indica cuántos parámetros se han recibido.
$@ representa todos los parámetros juntos.
Ejemplo práctico (parametros.sh):
#!/bin/bash
echo "Primer parámetro: $1"
echo "Segundo parámetro: $2"
echo "Total de parámetros: $#"
Ejecutando:
./parametros.sh gato perro
Salida:
Primer parámetro: gato
Segundo parámetro: perro
Total de parámetros: 2
3. Entrada Interactiva con read
El comando read permite que el script espere que el usuario escriba algo por teclado.
Ejemplo básico:
#!/bin/bash
echo "Introduce tu nombre:"
read nombre
echo "Encantado de saludarte, $nombre"
Es posible usar read con opciones:
-ppara mostrar un mensaje sin usarecho-spara ocultar lo que se escribe (útil para contraseñas)-npara captar un número concreto de caracteres
Ejemplos:
read -p "Introduce tu usuario: " usuario
read -s -p "Introduce tu contraseña: " pass
echo
echo "Usuario: $usuario"
4. Aritmética en Bash
Aunque todo es texto, Bash permite operaciones aritméticas básicas:
Sintaxis:
resultado=$(( expresion ))
Ejemplo:
a=7
b=3
c=$((a + b))
echo "Resultado: $c"
Salida esperada:
Resultado: 10
Operadores soportados:
+suma-resta*multiplicación/división entera%módulo
5. Combinando Variables con Texto
En Bash no hace falta concatenar como en otros lenguajes. Se puede insertar directamente la variable en cadenas.
Ejemplo:
nombre="Lucía"
echo "Bienvenida $nombre al sistema"
Si una variable está pegada a texto, conviene usar llaves { }:
version="1.0"
echo "Versión: v${version}"
6. Ejemplos Completos
Ejemplo 1: Script que saluda usando read
#!/bin/bash
read -p "Introduce tu nombre: " nombre
echo "Hola $nombre, bienvenido."
Ejemplo 2: Sumar dos números recibidos como parámetros
#!/bin/bash
a=$1
b=$2
echo "La suma es: $((a + b))"
Ejecutar:
./sumar.sh 4 8
Salida:
La suma es: 12
Ejemplo 3: Generar un archivo con información
#!/bin/bash
usuario=$USER
fecha=$(date +%Y-%m-%d)
pwd=$(pwd)
echo "Usuario: $usuario" > info.txt
echo "Fecha: $fecha" >> info.txt
echo "Directorio: $pwd" >> info.txt
Ejercicios propuestos
Ejercicio 1:
Crear un script llamado edad.sh que pida el nombre del usuario y su edad, luego muestre un mensaje tipo:
Hola Ana, tienes 23 años.
Ejercicio 2:
Crear un script suma.sh que reciba dos números como parámetros y muestre:
La suma de X + Y es Z
Ejercicio 3:
Crear un script logear.sh que pida un usuario y contraseña con read, y que oculte la contraseña al escribir.
Ejercicio 4:
Crear un script contador.sh que muestre cuántos parámetros se han pasado al script y liste cada uno en una línea.
Soluciones
✅ Ejercicio 1 – edad.sh
Enunciado:
Crear un script que pida el nombre del usuario y su edad, luego muestre algo como:
Hola Ana, tienes 23 años.
Solución:
#!/bin/bash
# Script: edad.sh
# Pide nombre y edad y muestra un mensaje
read -p "Introduce tu nombre: " nombre
read -p "Introduce tu edad: " edad
echo "Hola $nombre, tienes $edad años."
✅ Ejercicio 2 – suma.sh
Enunciado:
Crear un script suma.sh que reciba dos números como parámetros y muestre:
La suma de X + Y es Z
Solución básica (asumiendo que siempre pasan 2 números):
#!/bin/bash
# Script: suma.sh
# Suma dos números pasados como parámetros
a=$1
b=$2
resultado=$((a + b))
echo "La suma de $a + $b es $resultado"
Versión un poco más robusta (comprobando parámetros):
#!/bin/bash
# Script: suma.sh
# Suma dos números pasados como parámetros con validación básica
if [ $# -ne 2 ]; then
echo "Uso: $0 num1 num2"
exit 1
fi
a=$1
b=$2
resultado=$((a + b))
echo "La suma de $a + $b es $resultado"
✅ Ejercicio 3 – logear.sh
Enunciado:
Crear un script logear.sh que pida usuario y contraseña con read, ocultando la contraseña al escribir.
Solución:
#!/bin/bash
# Script: logear.sh
# Pide usuario y contraseña (sin mostrar la contraseña)
read -p "Usuario: " usuario
read -s -p "Contraseña: " password
echo
echo "Has introducido el usuario: $usuario"
echo "La contraseña se ha recibido (no se muestra por seguridad)."
Si quieres rizar el rizo en clase, puedes decir que en un caso real no se mostraría nada de la contraseña ni se imprimiría.
✅ Ejercicio 4 – contador.sh
Enunciado:
Crear un script contador.sh que:
- Muestre cuántos parámetros se han pasado.
- Liste cada uno en una línea.
Solución:
#!/bin/bash
# Script: contador.sh
# Muestra cuántos parámetros se han pasado y los lista
echo "Se han pasado $# parámetros."
# Si no hay parámetros, avisamos
if [ $# -eq 0 ]; then
echo "No se ha pasado ningún parámetro."
exit 0
fi
echo "Listado de parámetros:"
contador=1
for param in "$@"; do
echo "Parámetro $contador: $param"
contador=$((contador + 1))
done
Ejemplo de ejecución:
./contador.sh uno dos tres
Salida:
Se han pasado 3 parámetros.
Listado de parámetros:
Parámetro 1: uno
Parámetro 2: dos
Parámetro 3: tres






![11. [Reto] Bash Incremental: Aprender Shell a Golpes de Ejemplos 021c8028-9a76-4b0a-90e1-d0617edc9d94](https://laaventuradeaprender.com/wp-content/uploads/2026/01/021c8028-9a76-4b0a-90e1-d0617edc9d94.webp)

