27 Scripts en Bash
Fecha: 29 de septiembre, 2026
27.1 ¿Qué es un script de Bash?
Los scripts son archivos de texto que contienen instrucciones ejecutables por un intérprete de un lenguaje de programación para la ejecución de tareas. El formato .sh se utiliza para escribir scripts ejecutables por un intérprete como Bash.
En esta sección crearemos varios scripts de Bash y usaremos varios comandos y operadores.
27.1.1 Componentes clave
Shebang (#!/bin/bash)
- Primera línea del script
- Indica al sistema que use Bash para ejecutar el archivo
- Debe estar en la primera línea, sin espacios antes
Comentarios (#)
- Líneas que comienzan con
#son ignoradas - Útiles para documentar el código
Comandos
- Instrucciones que se ejecutan línea por línea
27.1.2 Crear y ejecutar un script
# 1. Crear el archivo
nano mi_script.sh
# 2. Hacer el archivo ejecutable
chmod +x mi_script.sh
# 3. Ejecutar el script
./mi_script.sh
# O ejecutar sin permisos de ejecución
bash mi_script.sh

27.2 Variables en Bash
27.2.1 ¿Qué es una variable?
Un contenedor que almacena un valor (texto, números, etc.) que puede cambiar durante la ejecución del script.
27.2.2 Declaración y asignación
nombre="Juan"
edad=25
ciudad="Madrid"Reglas importantes:
- ✅ Sin espacios alrededor del
= - ✅ Nombres en minúsculas (por convención)
- ✅ Pueden contener letras, números y guiones bajos
- ❌ No pueden comenzar con números
27.2.3 Acceder a variables
echo $nombre # Imprime el valor
echo ${nombre} # Forma alternativa (más segura)
echo "Hola, $nombre" # Dentro de comillas dobles27.2.4 Tipos de variables
Variables de cadena (string)
nombre="María"
mensaje="Bienvenido a Bash"Variables numéricas
edad=30
cantidad=100Variables vacías
variable=""27.2.5 Comillas simples vs. dobles
nombre="Juan"
echo "Hola, $nombre" # Hola, Juan (interpreta variables)
echo 'Hola, $nombre' # Hola, $nombre (literal)27.2.6 Variables especiales
$0 # Nombre del script
$1, $2 # Argumentos pasados al script
$# # Número de argumentos
$? # Código de salida del último comando
$$ # ID del proceso actual
27.3 Nivel 1: Scripts básicos
27.3.1 Primer script
Archivo: saludo.sh
#!/bin/bash
echo "¡Bienvenido a Bash!"
echo "Este es mi primer script"Ejecución:
chmod +x saludo.sh
./saludo.shEsperando una salida como esta:
¡Bienvenido a Bash!
Este es mi primer script
27.3.2 Script con variables simples
Archivo: presentacion.sh
#!/bin/bash
nombre="Carlos"
edad=28
ciudad="Barcelona"
echo "Mi nombre es $nombre"
echo "Tengo $edad años"
echo "Vivo en $ciudad"Ejecución:
chmod +x presentacion.sh
./presentacion.shEsperando una salida como esta:
Mi nombre es Carlos
Tengo 28 años
Vivo en Barcelona
27.3.3 Concatenación de variables
Archivo: concatenar.sh
#!/bin/bash
nombre="Evelia"
apellido="Coss"
edad=32
echo "Nombre completo: $nombre $apellido"
echo "Información: $nombre tiene $edad años"Ejecución:
chmod +x concatenar.sh
./concatenar.shEsperando una salida como esta:
Nombre completo: Evelia Coss
Información: Evelia tiene 32 años
27.4 Nivel 2: Entrada de datos
27.4.1 Leer entrada del usuario
Archivo: leer_entrada.sh
#!/bin/bash
echo "¿Cuál es tu nombre?"
read nombre
echo "¿Cuál es tu edad?"
read edad
echo "Hola $nombre, tienes $edad años"Ejecución:
chmod +x leer_entrada.sh
./leer_entrada.shEsperando una salida como esta:
¿Cuál es tu nombre? # Te va a preguntar
Evelia
¿Cuál es tu edad? # Te va a preguntar
32
Hola Evelia, tienes 32 años
27.4.2 Múltiples variables con read
Archivo: datos_personales.sh
#!/bin/bash
echo "Ingresa tu nombre, edad y ciudad (separados por espacio):"
read nombre edad ciudad
echo "Datos ingresados:"
echo "Nombre: $nombre"
echo "Edad: $edad"
echo "Ciudad: $ciudad"Ejecución:
chmod +x datos_personales.sh
./datos_personales.shEsperando una salida como esta:
Ingresa tu nombre, edad y ciudad (separados por espacio):
Evelia 32 Queretaro
Datos ingresados:
Nombre: Evelia
Edad: 32
Ciudad: Queretaro
27.4.3 Leer con mensaje personalizado
Archivo: leer_con_prompt.sh
#!/bin/bash
read -p "¿Cuál es tu nombre? " nombre
read -p "¿Cuál es tu email? " email
echo "Nombre: $nombre"
echo "Email: $email"Ejecución:
chmod +x leer_con_prompt.sh
./leer_con_prompt.shEsperando una salida como esta:
¿Cuál es tu nombre? Evelia
¿Cuál es tu email? ecossnav@gmail.com
Nombre: Evelia
Email: ecossnav@gmail.com
27.5 Nivel 3: Argumentos del script
27.5.1 Usar argumentos
Archivo: argumentos.sh
#!/bin/bash
echo "Primer argumento: $1"
echo "Segundo argumento: $2"
echo "Tercer argumento: $3"
echo "Total de argumentos: $#"Ejecución:
chmod +x argumentos.sh
./argumentos.sh Juan 25 MadridEsperando una salida como esta:
Primer argumento: Juan
Segundo argumento: 25
Tercer argumento: Madrid
Total de argumentos: 3
27.5.2 Script con argumentos obligatorios
Archivo: sumar_argumentos.sh
#!/bin/bash
num1=$1
num2=$2
suma=$((num1 + num2))
echo "$num1 + $num2 = $suma"Ejecución:
chmod +x sumar_argumentos.sh
./sumar_argumentos.sh 10 20Esperando una salida como esta:
10 + 20 = 30
27.6 Nivel 4: Operaciones con variables
27.6.1 Operaciones aritméticas
Archivo: operaciones.sh
#!/bin/bash
a=10
b=5
suma=$((a + b))
resta=$((a - b))
multiplicacion=$((a * b))
division=$((a / b))
echo "Suma: $suma"
echo "Resta: $resta"
echo "Multiplicación: $multiplicacion"
echo "División: $division"Ejecución:
chmod +x operaciones.sh
./operaciones.shEsperando una salida como esta:
Suma: 15
Resta: 5
Multiplicación: 50
División: 2
27.6.2 Incremento y decremento
Archivo: incremento.sh
#!/bin/bash
contador=0
echo "Contador inicial: $contador"
contador=$((contador + 1))
echo "Después de incrementar: $contador"
contador=$((contador - 1))
echo "Después de decrementar: $contador"Ejecución:
chmod +x incremento.sh
./incremento.shEsperando una salida como esta:
Después de incrementar: 1
Después de decrementar: 0
27.6.3 Longitud de una cadena
Archivo: longitud.sh
#!/bin/bash
texto="Hola Bash"
longitud=${#texto} # obtener la cantidad de caracteres que tiene una variable
echo "Texto: $texto"
echo "Longitud: $longitud caracteres"Ejecución:
chmod +x longitud.sh
./longitud.shEsperando una salida como esta:
Texto: Hola Bash
Longitud: 9 caracteres
27.7 Nivel 5. Variables de entorno
27.7.1 Usar variables de entorno
Archivo: variables_entorno.sh
#!/bin/bash
echo "Usuario actual: $USER"
echo "Directorio home: $HOME"
echo "Directorio actual: $PWD"
echo "Sistema operativo: $OSTYPE"Ejecución:
chmod +x variables_entorno.sh
./variables_entorno.shEsperando una salida como esta:
Usuario actual: ecoss
Directorio home: /Users/ecoss
Directorio actual: /Users/ecoss/Documents/Mt_TallerComputo_ClaseBash
Sistema operativo: darwin25
27.7.2 Crear y usar variables de entorno
Archivo: crear_entorno.sh
#!/bin/bash
export MI_VARIABLE="Valor importante"
echo "Mi variable: $MI_VARIABLE"Ejecución:
chmod +x crear_entorno.sh
./crear_entorno.shEsperando una salida como esta:
Mi variable: Valor importante
27.8 Material suplementario
- RSG Ecuador. Scripts en Bash
- RSG Ecuador. Wildcards y Streams
- RSG Ecuador. Expresiones regulares (regex)
- Wildcard Selection in Bash