El shell PWB (también conocido como shell Mashey ) era un shell de Unix . [ 1 ]
Historia
El intérprete de comandos PWB era una versión modificada (y generalmente limitada a ser compatible con versiones anteriores) del intérprete de comandos Thompson, con características adicionales para mejorar la usabilidad en la programación. Fue mantenido por John Mashey y otros (Dick Haight, Alan Glasser). [ 1 ] [ 2 ] [ 3 ]
PWB/UNIX comenzó con Research Unix 4.ª edición a mediados de octubre de 1973 y se actualizó con frecuencia durante los años siguientes, a medida que el departamento de PWB seguía los cambios de Research Unix y añadía algunas características. El intérprete de comandos PWB se lanzó a mediados de 1975 [ 4 ] y permaneció disponible hasta la versión 6 de PWB/UNIX basada en Unix [ 5 ] . En la versión 7 de Unix (1979), el intérprete de comandos PWB fue reemplazado por el intérprete de comandos Bourne [ 6 ] .
Características destacadas
Se introdujeron varias características en el intérprete de comandos PWB que permanecen en muchos intérpretes de comandos posteriores. Los comandos if y goto se hicieron internos al intérprete de comandos y se extendieron para permitir if - then - else - endif , y se introdujeron las construcciones switch y while , así como onintr para ignorar interrupciones o capturarlas para realizar limpieza. [ 1 ] Se podían usar variables simples, aunque sus nombres estaban limitados a una letra y algunas letras estaban reservadas para propósitos especiales, de los cuales algunos son los precursores de las variables de entorno que se encuentran en todos los sistemas Unix desde la versión 7 en adelante.
Por ejemplo, la variable $s es la antecesora de $HOME , utilizada para evitar la codificación fija de rutas. La variable $p es la antecesora de $PATH , que permitía a los usuarios buscar comandos en los directorios que eligieran. A diferencia de la mayoría de los sistemas UNIX de la época, el centro de computación PWB/UNIX original era compartido por varios grupos de programación que no podían cambiar el contenido de /bin o /usr/bin, pero querían crear sus propios conjuntos de comandos compartidos. Además, la búsqueda de comandos del intérprete de comandos se mejoró para permitir que los procedimientos del intérprete se invocaran como comandos binarios; es decir, si el intérprete de comandos encontraba un archivo no binario marcado como ejecutable, bifurcaba otra instancia del intérprete de comandos para leer ese archivo como un script. Así, la gente podía escribir en lugar de . Todo este comportamiento se empaquetó como la función pexec , que es la antecesora de execvp , para permitir que cualquier programa invocara comandos de la misma manera que el intérprete de comandos.command argumentssh pathname/command arguments
El carácter $ , utilizado anteriormente para identificar los argumentos de un script de shell , se convirtió en el marcador para desreferenciar una variable y podía usarse para insertar el valor de una variable en una cadena entre comillas dobles . (Además de en shells posteriores, esta característica también aparecería más tarde en los lenguajes de programación Perl y PHP ).
Descendientes
Estas características no pudieron superar las deficiencias del intérprete de comandos Thompson, por lo que Stephen Bourne escribió un nuevo intérprete desde cero . Este intérprete de Bourne era incompatible con los intérpretes Thompson y PWB, pero incluía equivalentes de la mayoría de las características del intérprete PWB, desarrolladas desde cero, en lugar de forma incremental, con mucha discusión entre los participantes. En particular, Stephen Bourne, John Mashey y Dennis Ritchie diseñaron variables de entorno y mecanismos relacionados como un mecanismo general para reemplazar las características anteriores, más limitadas. Tras la adopción del intérprete de Bourne como intérprete estándar en la versión 7 de Unix , el uso del intérprete PWB se fue eliminando gradualmente, aunque durante un tiempo existió un curso interno de Bell Labs llamado " Programación del intérprete de Bourne para programadores del intérprete de Mashey" . El intérprete de comandos C , desarrollado antes del lanzamiento público del intérprete de Bourne, también heredó algunas de las características del intérprete PWB.
Véase también
Referencias
- 1 2 3 Mashey, John R. (1976-10-13). "Using a Command Language as a High-Level Programming Language" . San Francisco, California, EE. UU .: Proceedings of the 2nd International Conference on Software Engineering. pp. 169–176 . Archivado del original el 12 de abril de 2020. Recuperado el 12 de abril de 2020.
Además de estas variables [$n, $p, $r, $s y $t], se proporciona lo siguiente: $$ contiene un número de 5 dígitos que es el número de proceso único del shell actual. En algunas circunstancias, es necesario conocer el número de un proceso, para matarlo, por ejemplo. Sin embargo, su uso más común hasta la fecha ha sido el de generar nombres únicos para archivos temporales.
- ↑ Likic, Vladimir (28 de septiembre de 2018). "Understanding Bash: Elements of Programming" . Linux Journal. Archivado del original el 21 de diciembre de 2018. Recuperado el 31 de diciembre de 2018. El
intérprete de comandos original Thompson, el intérprete de comandos Mashey y el intérprete de comandos Bourne se llamaban todos sh, y se superpusieron o reemplazaron entre sí en los años 1970-1976 a medida que se perfeccionaban y adquirían capacidades adicionales. ... El intérprete de comandos Thompson no tenía capacidades de programación. Esto cambió con el desarrollo del intérprete de comandos Mashey (y más tarde del intérprete de comandos Bourne).
- ↑ Wiles, Jack (13 de octubre de 2011). Guía de TechnoSecurity para el descubrimiento electrónico y la informática forense: un manual completo . Elsevier. ISBN 9780080558813Consultado el 31 de diciembre de 2018 a través de Google Libros.
- ↑ Mashey, John R. (27 de enero de 1999) [1986]. Toomey, Warren (ed.). "Re: Historia de Shell, hechos reales, pero largo | Newsgroups: net.unix-wizards" . Archivado del original el 6 de octubre de 2016. Recuperado el 31 de diciembre de 2018. El
"PWB Shell" apareció por primera vez a mediados de 1975. Se derivó de un conjunto de requisitos y sugerencias mías a principios de 1975 al intentar hacer programación de shell seria. A mediados de 1975, el shell adquirió variables, incluidas 3 que se derivaron de datos por proceso. Aquí es donde entró la idea de una búsqueda de ruta más generalizada.
- ↑ Chorafas, Dimitris N. (1986). ¿Qué Unix?: AT&T, IBM y otros referentes . McGraw-Hill . ISBN 9780070108790Archivado del original el 31/12/2018 . Consultado el 31/12/2018 .
- ↑ Iftekher, Mohammad Forhad (10 de noviembre de 2015). "Evolución de los shells de Unix/Linux - Unixmen" . Unixmen.com . Archivado del original el 21 de julio de 2019. Recuperado el 31 de diciembre de 2018 .
Enlaces externos
- La familia tradicional de conchas Bourne: historia y desarrollo (Sven Mascheck)
- Página del manual para la carcasa de la placa de circuito impreso , 31 de mayo de 1977.
- Artículo de Mashey sobre el desarrollo y la influencia de la carcasa PWB.
- Utilizar un lenguaje de comandos como lenguaje de programación de alto nivel.
- shells de Unix
- Lenguajes de programación orientados a texto
- Lenguajes de scripting