Bash (abreviatura de Bourne Again Shell) es un intérprete de comandos (Shell) y lenguaje desarrollado como un reemplazo libre y de código abierto para el Bourne Shell original (sh). Es parte del Proyecto GNU y se usa ampliamente en Linux y macOS como el shell predeterminado.

Historia

  • Desarrollado por: Brian Fox, como parte del Proyecto GNU.
  • Primera Versión: 1989.
  • Propósito: Proporcionar un reemplazo gratuito y mejorado para el Bourne Shell, incorporando características de otros shells como el C Shell (csh) y KornShell (ksh).
  • Estado Actual: Ampliamente utilizado como el shell predeterminado en la mayoría de las distribuciones de Linux y macOS.
  • Últimas Versiones:
  • Bash 5.2 (lanzada en 2022): Incluye mejoras en la corrección de errores y nuevas opciones de scripting.
  • Versiones más utilizadas: Bash 4.x y Bash 5.x, dependiendo de la distribución Linux.

Características Clave de Bash

  • Ejecución de Comandos: Permite a los usuarios ejecutar comandos e interactuar con el sistema operativo.
  • Scripting: Ofrece capacidades avanzadas de scripting, incluyendo bucles, condicionales y funciones.
  • Características Interactivas: Proporciona historial de comandos, autocompletado, alias y control de trabajos para una operación más amigable.
  • Características Avanzadas de Programación: Incluye arrays, manipulación de cadenas y manejo de errores.

Diferencias entre Bash 5 y Bash 4

Bash 5 introdujo varias mejoras con respecto a Bash 4. A continuación, se enumeran algunas de las principales diferencias:

  • Soporte mejorado para scripting:
  • Bash 5 introdujo nuevas opciones para manejar errores y comportamiento en los scripts, como SRANDOM, que genera números aleatorios más seguros.
  • Soporte mejorado para matrices asociativas, facilitando el manejo de datos más complejos.

  • Correcciones de errores y rendimiento:

  • Reducción de problemas en funciones heredadas.
  • Mejoras en la estabilidad al ejecutar scripts extensos.

  • Compatibilidad con nuevos entornos:

  • Mejor soporte para entornos modernos, incluyendo sistemas que usan UTF-8 y configuraciones de localización avanzadas.

  • Funciones interactivas:

  • Comportamiento mejorado en el historial de comandos.
  • Optimización de la autocompletación para manejar directorios grandes más rápido.

  • Depuración:

  • Nuevas opciones para depurar scripts, como mejoras en set -x para rastrear variables de manera más efectiva.

Bash vs SH

Característica sh bash
Scripting Capacidades básicas de scripting Scripting avanzado con sintaxis extendida y características adicionales
Uso Interactivo Sin historial ni autocompletado Amigable, con historial y autocompletado de comandos
Arrays No soportados Soporta arrays indexados y asociativos
Sustitución de Comandos Solo sintaxis de backticks Soporta $(comando) y backticks
Portabilidad Altamente portátil Principalmente en Linux y macOS
Rendimiento Más rápido en scripts simples Soporta tareas más complejas

Relacionado