Una de las ventajas más potentes de WSL2 es la posibilidad de usar herramientas Linux como make
y Bash para automatizar tareas en proyectos de desarrollo, ciencia de datos, o DevOps. Este artículo detalla cómo crear scripts avanzados con Bash y cómo estructurar Makefiles
efectivos para ejecutar tareas complejas con un solo comando.
🎯 Objetivo Link to heading
- Crear scripts Bash reutilizables y robustos
- Diseñar
Makefiles
para tareas como tests, builds o pipelines - Integrar la automatización en entornos reproducibles bajo WSL2
⚙️ Paso 1: Preparar entorno en WSL2 Link to heading
Instalar dependencias básicas:
sudo apt update && sudo apt install -y make build-essential
Organizar proyecto:
mi-proyecto/
├── scripts/
│ ├── build.sh
│ └── test.sh
├── Makefile
└── README.md
🧪 Paso 2: Crear scripts Bash reutilizables Link to heading
build.sh Link to heading
#!/bin/bash
set -e
echo "Compilando proyecto..."
gcc src/main.c -o bin/app
echo "Build completado con éxito."
test.sh Link to heading
#!/bin/bash
set -e
echo "Ejecutando tests..."
pytest tests/
Dar permisos de ejecución:
chmod +x scripts/*.sh
📦 Paso 3: Diseñar un Makefile Link to heading
.PHONY: build test clean all
build:
bash scripts/build.sh
test:
bash scripts/test.sh
clean:
rm -rf bin/
all: clean build test
Ahora se pueden ejecutar tareas fácilmente:
make build
make test
make all
🔁 Paso 4: Automatización avanzada Link to heading
Agregar detección de entorno, logs o argumentos en los scripts:
#!/bin/bash
set -e
echo "Sistema operativo: $(uname -a)"
DATE=$(date +%Y-%m-%d)
LOG="build_$DATE.log"
echo "Iniciando build..." | tee "$LOG"
gcc src/main.c -o bin/app >> "$LOG" 2>&1
O usar variables en Makefile
:
DATE := $(shell date +%F)
LOGFILE := logs/build_$(DATE).log
logbuild:
mkdir -p logs
bash scripts/build.sh | tee $(LOGFILE)
🛠️ Buenas prácticas Link to heading
- Validar argumentos (
"$#"
y"$1"
) en scripts - Documentar cada tarea con comentarios o
README.md
- Usar
.PHONY
para evitar conflictos con archivos - Versionar scripts y
Makefile
en Git para control de cambios
✅ Conclusión Link to heading
Con Bash avanzado y Makefiles bien diseñados, es posible automatizar completamente tareas comunes de desarrollo en WSL2, mejorando la productividad, reduciendo errores y asegurando reproducibilidad en equipos o entornos compartidos.