Bash

Bash fue originalmente escrito por Brian Fox para el sistema operativo GNU, y pretendía ser el reemplazo de software libre del shell Bourne.

Otras características, por ejemplo, el historial, se copian de csh y ksh.

[30]​ Los scripts en informática son utilizados para manipular, personalizar y automatizar instalaciones de sistemas existentes.

Los scripts Bash permiten automatizar tareas repetitivas o complejas al combinar comandos y estructuras de control en un solo archivo.

La sintaxis de Bash tiene muchas extensiones que no proporciona el intérprete Bourne.

Los guiones de Bash reciben los argumentos que le pasa al intérprete como $1, $2, …, $n.

Usando $# es posible comprobar el número de argumentos entregados al guion antes de realizar alguna acción con ellos: Otra forma de acceder a los argumentos es a través del array $@, por medio del cual se puede iterar sobre todos los argumentos dados: Una gran limitación del intérprete Bourne es que no puede realizar cálculos con enteros sin lanzar un proceso externo.

Bash puede redirigir la salida estándar y los flujos de error estándar a la vez utilizando la sintaxis: que es más simple que teclear la orden Bourne equivalente, "orden > archivo 2>&1".

En las expresiones regulares puede accederse a las partes delimitadas por paréntesis, utilizando la variable shell BASH_REMATCH, de la siguiente manera: Esta sintaxis proporciona un rendimiento superior a lanzar un proceso separado para ejecutar una orden grep, porque el emparejamiento de las expresiones regulares tiene lugar en el propio proceso Bash.

Una cadena entrecomillada con comillas dobles precedida por un signo $ ($"...") será traducida de acuerdo a la localización actual.

Cuando se invoca a Bash como un intérprete interactivo para el inicio de una sesión (login shell), o como un intérprete no interactivo con la opción --login, en primer lugar lee y ejecuta órdenes desde el archivo /etc/profile, si existe.

La opción --noprofile puede utilizarse al comenzar un nuevo intérprete para inhibir este comportamiento.

Cuando una sesión del intérprete finaliza, Bash lee y ejecuta las órdenes de ~/.bash_logout, si existe.

Cuando un intérprete interactivo que no es un login shell arranca, Bash lee y ejecuta órdenes desde ~/.bashrc, si existiese.

Cuando se invoca como un inicio de sesión interactivo con el nombre sh, Bash busca la variable ENV, si está definida expande su valor, y utiliza el valor expandido como el nombre de un archivo para leer y ejecutar.

Bash intenta determinar cuando está siendo ejecutado por un demonio de intérprete remoto, normalmente rshd.

En general, se recomienda evitarlas, para permitir la portabilidad de guiones a otros sistemas operativos.

Captura de pantalla de una sesión de Bash 3.1 que muestra sus particularidades. Muestra la exportación de una variable, alias, tipo, kill de Bash, variables de entorno PS1, BASH_VERSION y SHELLOPTS, redirección de la salida estándar y el error estándar y expansión del historial.