Después de entender qué es Bash y qué es un script, el siguiente paso es aprender a preparar correctamente el entorno de trabajo y ejecutar scripts de forma segura y ordenada.
1. Crear Scripts Correctamente
Un script no es más que un archivo de texto plano. Se puede crear con cualquier editor, desde los más simples hasta los más avanzados.
Editores recomendados:
nano(para trabajar en la terminal, muy sencillo)vim(más avanzado, orientado a usuarios expertos)- Visual Studio Code (editor gráfico con sintaxis resaltada)
geditokate(editores gráficos simples)
Para crear un script:
nano mi_script.sh
Se recomienda usar la extensión .sh para identificar que es un script de shell, aunque no es obligatoria.
2. Añadir el Shebang
La primera línea del script debe indicar el intérprete que lo ejecutará. Esto se conoce como shebang.
Ejemplo:
#!/bin/bash
Esto garantiza que el script se ejecutará con Bash aunque el sistema use otro shell por defecto.
Otros ejemplos:
#!/bin/shpara un shell más compatible POSIX.#!/usr/bin/env bashpara localizar Bash dinámicamente en distintas máquinas.
3. Permisos de Ejecución
Un script recién creado no suele tener permisos de ejecución. Para poder ejecutarlo es necesario asignarlos.
Comando:
chmod +x mi_script.sh
Esto indica que el archivo puede ser ejecutado (x) por el usuario.
Para comprobar los permisos:
ls -l mi_script.sh
Ejemplo de salida:
-rwxr-xr-x 1 alumno alumno 57 ene 10 18:22 mi_script.sh
4. Ejecutar Scripts
Hay varias formas de ejecutar un script. Las más comunes son:
4.1. Ejecutarlo por ruta relativa
Si estamos en la misma carpeta del script:
./mi_script.sh
El ./ indica “ejecuta este archivo desde el directorio actual”.
4.2. Ejecutarlo por ruta absoluta
Ejemplo:
/home/alumno/scripts/mi_script.sh
Esto es útil en automatizaciones y servicios del sistema.
4.3. Ejecutarlo a través del intérprete
También podemos invocar directamente Bash:
bash mi_script.sh
Esto ignora permisos, pero exige que el script sea legible.
5. Organización del Entorno de Trabajo
Para no mezclar scripts con otros tipos de archivos, se recomienda crear una carpeta propia:
mkdir ~/scripts
cd ~/scripts
Aquí podemos almacenar scripts y añadir esta carpeta al PATH más adelante para ejecutarlos desde cualquier ubicación.
6. Variables de Entorno y el PATH
El PATH es una variable que indica dónde busca el sistema los programas ejecutables.
Para ver el PATH actual:
echo $PATH
Si añadimos nuestros scripts a una carpeta incluida en el PATH, podremos ejecutarlos sin escribir ./ ni rutas completas.
Más adelante veremos cómo añadir una ruta personalizada al PATH en el archivo .bashrc.
7. Comentarios y Documentación Interna
Es recomendable comentar el código para recordar qué hace cada parte. En Bash los comentarios se escriben con #.
Ejemplo:
#!/bin/bash
# Este script muestra un mensaje por pantalla
echo "Ejecutando mi script..."
Es buena práctica incluir una cabecera con información útil:
#!/bin/bash
# Nombre: backup_home.sh
# Autor: Nombre del alumno
# Descripción: Realiza una copia de seguridad del directorio /home
# Fecha: 10/01/2026
8. Problemas Comunes al Ejecutar Scripts
Durante este módulo suelen aparecer errores típicos:
bash: ./script.sh: Permission denied
→ Falta ejecutarchmod +x script.shcommand not found
→ El script no se encuentra o no es ejecutableNo such file or directory
→ Error en la ruta o en el nombre del archivobad interpreter: No such file or directory
→ El shebang apunta a una ruta incorrecta o se usa un archivo generado en Windows con saltos de línea incompatibles
Este último error aparece mucho cuando se editan scripts en Windows. Se resuelve con:
dos2unix script.sh
9. Ejemplo Completo de Script
Vamos a crear un script que pida un nombre y salude al usuario.
- Crear el archivo:
nano saludo.sh
- Contenido:
#!/bin/bash
echo "Introduce tu nombre:"
read nombre
echo "Hola $nombre, encantado de saludarte."
- Dar permisos:
chmod +x saludo.sh
- Ejecutarlo:
./saludo.sh
Ejercicios propuestos
Ejercicio 1:
Crear un script llamado info.sh que muestre:
- El usuario actual
- El directorio donde se encuentra
- La fecha actual
Salida orientativa:
Usuario: alumno
Directorio: /home/alumno/scripts
Fecha: 2026-01-10
Ejercicio 2:
Crear un script llamado crear_respaldo.sh que:
- Cree una carpeta
respaldo(si no existe) - Copie dentro todos los
.txtdel directorio actual
Ejercicio 3:
Mover todos los scripts a ~/scripts/ y probar:
- Ejecución con
./ - Ejecución con ruta absoluta
Ejercicio 4 (opcional):
Buscar qué es la variable PATH y para qué sirve.
Soluciones ejercicios
✅ Ejercicio 1
Enunciado:
Crear un script llamado info.sh que muestre:
- El usuario actual
- El directorio donde se encuentra
- La fecha actual
💡 Solución propuesta (info.sh)
#!/bin/bash
# Script: info.sh
# Muestra información básica del sistema y del usuario
echo "Usuario: $USER"
echo "Directorio actual: $(pwd)"
echo "Fecha actual: $(date +"%Y-%m-%d %H:%M:%S")"
Notas para clase:
$USERviene del entorno.pwdmuestra el directorio actual.dateformateado con+"%Y-%m-%d %H:%M:%S"muestra fecha y hora legibles.
✅ Ejercicio 2
Enunciado:
Crear un script llamado crear_respaldo.sh que:
- Cree una carpeta
respaldo(si no existe) - Copie dentro todos los
.txtdel directorio actual
💡 Solución propuesta básica (crear_respaldo.sh)
#!/bin/bash
# Script: crear_respaldo.sh
# Crea una carpeta respaldo y copia todos los .txt dentro
# Crear carpeta si no existe
if [ ! -d "respaldo" ]; then
echo "Creando carpeta 'respaldo'..."
mkdir respaldo
else
echo "La carpeta 'respaldo' ya existe."
fi
# Copiar archivos .txt si existen
if ls *.txt >/dev/null 2>&1; then
echo "Copiando archivos .txt a 'respaldo'..."
cp *.txt respaldo/
echo "Copia completada."
else
echo "No se encontraron archivos .txt en el directorio actual."
fi
Ideas para comentar en clase:
[ ! -d "respaldo" ]→ comprueba que NO exista el directorio.ls *.txt >/dev/null 2>&1→ truco para comprobar si hay.txtsin mostrar errores.cp *.txt respaldo/→ copia múltiple.
✅ Ejercicio 3
Enunciado:
Mover todos los scripts a ~/scripts/ y probar:
- Ejecución con
./ - Ejecución con ruta absoluta
Aquí no hay “script solución”, sino comandos que los alumnos deben usar.
💡 Pasos y comandos
- Crear la carpeta
scriptsen el home (si no existe):
mkdir -p ~/scripts
- Mover los scripts (por ejemplo,
info.shycrear_respaldo.sh) desde el directorio actual:
mv info.sh crear_respaldo.sh ~/scripts/
- Ir a la carpeta:
cd ~/scripts
- Comprobar permisos (por si acaso):
chmod +x info.sh crear_respaldo.sh
- Ejecutar con ruta relativa (estando dentro de
~/scripts):
./info.sh
./crear_respaldo.sh
- Ejecutar con ruta absoluta (desde cualquier sitio):
/ home /usuario/scripts/info.sh
Sustituyendo usuario por el usuario real, por ejemplo:
/home/alumno/scripts/info.sh
✅ Ejercicio 4
Enunciado:
Buscar qué es la variable PATH y para qué sirve.
Aquí puedes darles una explicación de solución tipo “teoría corregida”.
💡 Explicación-solución
La variable PATH:
- Es una variable de entorno que contiene una lista de rutas separadas por
: - Indica a la shell en qué directorios buscar ejecutables cuando escribimos un comando sin ruta.
Por ejemplo, si escribes:
ls
La shell busca un archivo ejecutable llamado ls en cada ruta del PATH, en orden.
Para ver el contenido del PATH:
echo $PATH
Ejemplo de salida:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Cada ruta separada por : es un directorio donde el sistema busca programas.
Si añades ~/scripts al PATH, podrías ejecutar info.sh simplemente escribiendo:
info.sh
sin ./ ni ruta completa.






![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)

