Saltar al contenido principal

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:

  1. Crear el archivo: nano mi_script.sh
  2. Agregar el contenido anterior
  3. Hacerlo ejecutable: chmod +x mi_script.sh
  4. 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