Capítulo 6.1 - Introducción al Scripting Shell
Objetivos de Aprendizaje
Al final de este capítulo, usted será capaz de:
- Comprender qué es un script shell
- Crear su primer script Bash
- Comprender el shebang
- Hacer un script ejecutable
- Utilizar variables básicas
¿Qué es un Script Shell?
Un script shell es un archivo que contiene una serie de comandos shell que se ejecutan secuencialmente. Es una forma poderosa de automatizar tareas.
Ventajas:
- Automatización de tareas repetitivas
- Combinación de comandos complejos
- Reutilización
- Programación con cron
Primer Script
Crear un Script
#!/bin/bash
# Mi primer script
echo "¡Hola Linux!"
echo "Fecha: $(date)"
echo "Usuario: $(whoami)"
Pasos:
- Crear el archivo:
nano mi_script.sh - Agregar el contenido anterior
- Hacerlo ejecutable:
chmod +x mi_script.sh - Ejecutar:
./mi_script.sh
Shebang
La primera línea #!/bin/bash es el shebang:
- Indica qué intérprete usar
- Necesario para ejecución directa
- Alternativas:
#!/bin/sh,#!/usr/bin/env bash
Variables
Declaración
#!/bin/bash
# Variables simples
NOMBRE="Linux"
VERSION=6.1
ACTIVO=true
# Uso
echo "Nombre: $NOMBRE"
echo "Versión: $VERSION"
echo "Activo: $ACTIVO"
Reglas:
- Sin espacios alrededor de
= - Comillas para cadenas con espacios
$para usar la variable
Variables de Entorno
#!/bin/bash
# Variables del sistema
echo "Home: $HOME"
echo "User: $USER"
echo "Path: $PATH"
echo "PWD: $PWD"
Variables Especiales
#!/bin/bash
echo "Nombre del script: $0"
echo "Primer argumento: $1"
echo "Segundo argumento: $2"
echo "Cantidad de argumentos: $#"
echo "Todos los argumentos: $@"
echo "Código de retorno: $?"
Lectura de Entrada
read
#!/bin/bash
# Leer una entrada
echo "Ingrese su nombre:"
read NOMBRE
echo "¡Hola $NOMBRE!"
# Con prompt integrado
read -p "Ingrese su edad: " EDAD
echo "Usted tiene $EDAD años"
# Lectura silenciosa (contraseña)
read -s -p "Contraseña: " PASS
echo
Comentarios
#!/bin/bash
# Comentario en una línea
# Comentario
# en varias líneas
# Comentario al final de línea
COMANDO # Explicación
Ejemplo Completo
#!/bin/bash
# Script de ejemplo
# Autor: Su nombre
# Fecha: $(date +%Y-%m-%d)
# Variables
NOMBRE_SCRIPT="mi_script.sh"
VERSION="1.0"
# Función principal
main() {
echo "=== $NOMBRE_SCRIPT v$VERSION ==="
echo "Fecha: $(date)"
echo "Usuario: $USER"
echo "Directorio: $PWD"
echo "Argumentos: $#"
if [ $# -gt 0 ]; then
echo "Primer argumento: $1"
fi
}
# Ejecución
main "$@"
Ejecución
Métodos
# 1. Ejecución directa (requiere shebang y chmod +x)
./mi_script.sh
# 2. Con bash explícito
bash mi_script.sh
# 3. Con sh
sh mi_script.sh
# 4. Sourcing (ejecuta en el shell actual)
source mi_script.sh
. mi_script.sh # Atajo
Buenas Prácticas
Estructura
#!/bin/bash
# 1. Shebang
# 2. Comentarios de cabecera
# 3. Variables globales
# 4. Funciones
# 5. Código principal
Opciones Útiles
#!/bin/bash
set -e # Detener en error
set -u # Error si variable no definida
set -o pipefail # Error en pipeline
# O combinar
set -euo pipefail
Resumen
En este capítulo, usted ha aprendido:
Script shell: Archivo de comandos ejecutables
Shebang: #!/bin/bash para indicar el intérprete
Variables: Declaración y uso con $
Lectura: read para entrada de usuario
Ejecución: ./script.sh, bash script.sh, source script.sh
Buenas prácticas: Estructura, set -e, comentarios
Próximos Pasos
Capítulo 6.2: Variables y Parámetros
Capítulo 6.3: Estructuras de Control
Capítulo creado el: Diciembre 2024