Lenguaje #43

Bash 1989

Bourne Again SHell: scripting universal en sistemas Unix. Con tuberías, globbing y scripting accesible, Bash es el pegamento de automatización en servidores y desarrollo.

Dominio: shell / automatización Paradigma: scripting imperativo Interpretado
Ficha técnica

Datos esenciales

1989, GNU (Brian Fox, luego Chet Ramey). Shell de Unix compatible con Bourne, con mejoras de scripting, historial y completado.

Shell POSIX-like Automatización
Historia y evolución

Bash reemplaza sh en GNU como shell por defecto. Se extiende a Linux y macOS (hasta Catalina). Añade arrays, brace expansion, arithmetic y mejoras interactivas. Bash 5 incorpora mejoras de shell options y correcciones de seguridad.

Personas e hitos

Brian Fox desarrolla las primeras versiones; Chet Ramey mantiene Bash por décadas. Bash se convierte en shell por defecto en la mayoría de distros GNU/Linux.

Uso y propósito

Scripts de automatización, DevOps, CI/CD, instalación, contenedores, glue entre utilidades Unix, configuración de sistemas y tareas diarias en terminal.

Sintaxis y estructuras

Funciones, variables sin tipos estrictos, arrays, control if/for/while, sustitución de comandos, piping, redirecciones, globbing, case, subshells, set -e/-u/-o pipefail para robustez.

Ecosistema

GNU coreutils, grep/sed/awk, gestores de paquetes en distros, shellcheck para lint, bash-completion, frameworks de pruebas (bats), scripts de CI, contenedores y cloud-init.

Influencias y legado

Hereda de sh y csh/tcsh, extiende con historia y completado. Bash scripts son la base de DevOps clásico. Inspira shells modernos (zsh, fish) y sigue como estándar de facto en servidores.

Anécdotas y cultura

Bash se pronuncia “Bash” (por Bourne Again). Shebang `#!/usr/bin/env bash` es ubicuo. El debate set -e / pipefail es parte del folclore DevOps.

Estado actual

Bash 5.x se mantiene activo. Aunque zsh/fish ganan adeptos, Bash sigue dominante en servidores, scripts de CI y contenedores.

Bash es el idioma común de la línea de comandos: combina la herencia Unix con scripting accesible para automatizarlo todo.