bourne_shell

Shell de Bourne

El Bourne Shell fue un intérprete de comandos desarrollado a partir de finales de 1976 por Stephen Bourne de los Laboratorios Bell, en vista de reemplazar la limitada Shell de Thompson anterior.

Aunque podía utilizarse como un intérprete de comandos interactivo, no era amistoso en este sentido, realmente estaba pensado para oficiar de lenguaje de guionado, y contenía la mayoría de las características que se asocian popularmente para producir programas estructurados.

El Shell original de Bourne no suele utilizarse más, pero todos los sistemas POSIX actuales suelen incorporar alguna implementación moderna derivada de esta shell sh por razones de compatibilidad absoluta y de ejecución de guiones de programación.

El Shell de Thompson típico de las primeras ediciones de Unix se había demostrado limitado, por lo que Stephen Bourne decidió implementar una versión radical que lo superara en potencia y posibiliades.

Para ello desarrolló a lo largo de 1977 una versión que no retuviese compatibilidad con el de Thompson, inspirándose en las modalidades de programación utilizadas por su lenguaje preferido por entonces, el ALGOL68, e incorporando macros de programación. Para 1979 su shell (que también recibió el nombre de fichero sh en la unix V7), reemplazó al vetusto de Thompson.

A principios de la década de 1980 el shell de Bourne era uno de los más prometedores.. En vista de sus posibilidades, fue expandida por la AT&T, lo que lo terminó de colocar en el podio uno de los shell estándares y el más utilizado (aunque también, uno de lenta ejecución). A finales de esta década su uso se vió disociado.

La antigua shell de Bourne tienen reglas universales que inpirarían a Bash. Originalmente, incorpora las siguientes palabras clave. if then else elif fi case in esac for thile until do done { ].

Sintaxis

Palabra: secuencia de caracteres no nulos nombres: una secuencia de letras que comienzan con una letra, dígitos, o guiones bajos dígitos: 0 1 2 3 4 5 6 7 8 9

comando-simple
(lista-de-comandos)
for nombre do lista-de-comandos donde
for nombre in palabra... do lista-de-comandos done
while lista-de-comandos do lista-de-comandos done
until lista-de-comandos do lista-de-comandos done
case palabra in case-part... esac
if lista-de-comandos then lista-de-comandos else-parte fi

Sintáctica

Carácter Significado
| caño
&& símbolo andf
|| símbolor orf
; separador de comandos
;; delimitador de case
& ejecuta comando en segundo plano
(...) agrupa comandos
< redirección de entrada
<< entrada desde un documento
> creación de salida
>> agregar a la salida

Patrones

Los patrones de coincidencia pueden aplicarse mediante

  • *: para cualquier caracter incluyendo el nulo
  • ?: patrón de coincidencia para cualquier caracter
  • […]: coincidencia de cualquiera de los caracteres entrecorchetados

Sustitución

La shell de bourne sustituye de este modo

  • ${…} sustituye variables de shell
  • '...' sustituye salida de comandos

Citado

El citado se puede hacer con:

  • \ cita el siguiente caracter
  • '...' cita los caracteres entre apostrofes
  • "..." cita los caracteres entrecomillados, excepto $, ', \ y .

Ver: Tutorial de Shell de Bourne

  • bourne_shell.txt
  • Última modificación: 2024/08/10 16:50
  • por peron