DataSkills Hub

Bash

Bash es el shell estándar en servidores Linux. Se usa para automatización de tareas, scripts de ETL, gestión de contenedores y operaciones de infraestructura.

#Getting Started

#Primer script

#!/bin/bash
# deploy_check.sh — verificar estado de contenedores
SERVICIO="dataskills-hub"
echo "Verificando $SERVICIO..."
docker ps --filter "name=$SERVICIO" --format "{{.Status}}"

Ejecutar:

chmod +x deploy_check.sh
./deploy_check.sh

#Variables

# Asignación (sin espacios alrededor del =)
ENTORNO="produccion"
DB_HOST="postgres-server"

echo ${ENTORNO}        # => produccion
echo "$DB_HOST"        # => postgres-server
echo '${ENTORNO}'      # => ${ENTORNO} (literal)

# Variable con valor por defecto
echo ${PUERTO:-<puerto>}   # => valor default si PUERTO no existe

#Comentarios

# Comentario de una línea

: '
Comentario multilínea.
Útil para documentar bloques
grandes de lógica.
'

#Argumentos de script

Expresión Descripción
$0 Nombre del script
$1$9 Parámetros posicionales 1 a 9
${10} Parámetro posicional 10+
$# Cantidad de argumentos
$@ Todos los argumentos (como lista)
$* Todos los argumentos (como string)
$$ PID del proceso actual
$? Código de salida del último comando
$! PID del último proceso en background

#Ejecución de comandos

# Sustitución de comandos
FECHA=$(date +%Y-%m-%d)
echo "Backup del $FECHA"

# Forma alternativa (legacy)
FECHA=`date +%Y-%m-%d`

# Subshell (no afecta el directorio actual)
(cd /tmp && ls -la)
pwd  # sigue en el directorio original

#Modo estricto (recomendado)

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

# -e  → salir ante cualquier error
# -u  → error si variable no definida
# -o pipefail → detectar errores en pipes

Todo script de producción debe iniciar con set -euo pipefail.

#Variables y Tipos

#Expansión de parámetros

Sintaxis Descripción
${VAR:-default} Valor por defecto si no definida
${VAR:=default} Asignar default si no definida
${VAR:+alt} Usar alt solo si VAR está definida
${VAR:?mensaje} Error con mensaje si no definida
`$