Bourne Shell
Bourne Shell | ||
---|---|---|
Stephen Bourne | ||
Información general | ||
Paradigma | imperativo | |
Apareció en | 1977 | |
Diseñado por | Stephen Bourne | |
Sistema de tipos | lenguaje sin tipos | |
Implementaciones | sh, bash, ksh, zsh, ash | |
Influido por | Thompson shell, ALGOL 68 | |
Ha influido a | AWK, Perl | |
Bourne Shell es un programa informático cuya función consiste en interpretar órdenes. Incorpora características tales como control de procesos, redirección de entrada/salida, listado y lectura de ficheros, protección, comunicaciones y un lenguaje de órdenes para escribir programas por lotes o “scripts”. Fue el intérprete usado en las primeras versiones de Unix y se convirtió en un estándar de facto.
Historia
[editar]Bourne Shell fue desarrollado por Stephen Bourne, de los Laboratorios Bell de AT&T. Vio la luz en UNIX Versión 7, distribuido a colegios y universidades y en el cual era el intérprete de comandos predeterminado. Sustituyó al Thompson shell, cuyo archivo ejecutable tenía el mismo nombre: sh
. Todavía es un intérprete de comandos muy popular para entornos Unix.
Todos los sistemas de tipo Unix tienen al menos un intérprete compatible con el Bourne shell. El programa Bourne shell se encuentra dentro de la jerarquía de archivos de Unix en /bin/sh
. En algunos sistemas, tal como BSD, /bin/sh
es un Bourne shell o un equivalente, pero en otros sistemas, como muchas distribuciones de Linux, /bin/sh
es un enlace simbólico a un shell compatible con más características (como Bash). POSIX especifica su shell estándar como un subconjunto estricto del Korn shell.
Objetivos
[editar]Los principales objetivos de Bourne Shell eran aprovechar dos nuevas características clave del núcleo de la versión 7 de Unix:
- Listas de parámetros/argumentos para los programas mucho más largas. Su límite se había extendido de 127 a 8192 bytes.
- Variables de entorno. Estas permitían pasar mucha información a los programas al ejecutarlos.
Logros
[editar]El Bourne Shell fue el primero en destacar la convención de usar el descriptor de archivo 2 para mensajes de error, permitiendo un control mucho mayor del programa durante la creación del script, manteniendo los mensajes de error separados de la información.
Aunque pretendía ser un intérprete de comandos interactivo, ganó popularidad como lenguaje de comandos por lotes o “scripting”, con la publicación, por parte de Brian W. Kernighan y Rob Pike, de The UNIX Programming Environment. Este fue el primer libro publicado comercialmente que presentaba el shell como un lenguaje de programación en forma de tutorial.