RUNCOM es un procesador de comandos macro (scripts) de CTSS . [ 1 ]
Historia
Louis Pouzin creó RUNCOM para CTSS alrededor de 1963. [ 2 ] En 1965 publicó un artículo que describía un diseño para el shell Multics que incluía una breve descripción de RUNCOM [ 3 ] seguido de un segundo artículo que publicó cinco días después describiendo un diseño para RUNCOM que añadía comandos para el flujo de control , la ramificación condicional y los bucles. [ 4 ]
En el contexto de los sistemas tipo Unix, el término rc significa " ejecutar comandos ". Se utiliza para cualquier archivo que contenga información de inicio para un comando.
De Brian Kernighan y Dennis Ritchie : [ 5 ] [ 6 ]
Existía una función que ejecutaba varios comandos almacenados en un archivo; se llamaba runcom, por "ejecutar comandos", y el archivo empezó a denominarse "un runcom". El comando rc en Unix es un vestigio de ese uso.
Tom Van Vleck , ingeniero de Multics , también ha recordado la extensión rc: "La idea de que el intérprete de comandos fuera un programa esclavo ordinario surgió del diseño de Multics y de un programa predecesor en CTSS de Louis Pouzin llamado RUNCOM, origen del sufijo '.rc' en algunos archivos de configuración de Unix". [ 7 ]
Este es también el origen del nombre del intérprete de comandos Plan 9 de Bell Labs , creado por Tom Duff : el intérprete rc . Se llama "rc" porque la función principal de un intérprete de comandos es "ejecutar comandos".
Aunque históricamente no sea preciso, rc también puede interpretarse como "control de ejecución", ya que un archivo rc controla cómo se ejecuta un programa. Por ejemplo, el editor Vim busca y lee el contenido del archivo .vimrc para determinar su configuración inicial. En The Art of Unix Programming , Eric S. Raymond se refiere constantemente a los archivos rc como archivos de "control de ejecución".
Uso
Fondo
RUNCOM no es un intérprete de comandos en el sentido de la shell de UNIX. Cuando un usuario escribe comandos en CTSS, estos van al supervisor (núcleo), no a ningún programa similar a una shell de UNIX. Los usuarios no pueden escribir comandos en RUNCOM; este procesa archivos de disco. Los archivos de CTSS tienen un nombre y un apellido separados por espacios, por ejemplo, FOO BCD , similar a CMS .
Descripción de RUNCOM
Las cadenas de comandos RUNCOM, también conocidas como macrocomandos (ambos términos se refieren a scripts), son archivos con el segundo nombre RUNCOM o BCD que contienen cero o más líneas. Las líneas del script pueden ser líneas en blanco, comentarios, comandos regulares (del tipo que se podrían ingresar en la línea de comandos del supervisor) o el pseudocomando (comando integrado solo en RUNCOM) CHAIN.
Los comentarios comienzan con $o *como primer carácter de la línea. Los comentarios que usan $se imprimen (incluido el $) cuando se ejecuta RUNCOM, mientras que los que tienen *no se imprimen en absoluto. La sustitución de parámetros no ocurre en los comentarios.
Cuando un usuario ejecuta RUNCOM, los argumentos (parámetros) deben comenzar con el nombre del archivo que contiene el script. Si un usuario ejecuta RUNCOM sin argumentos, se imprimen algunas instrucciones sobre cómo usarlo y se detiene, devolviendo al usuario a la línea de comandos del sistema. Los argumentos restantes, si los hay, son nombres de comandos, valores que se usarán como argumentos en el script o las cadenas (NIL) o (END) incluyendo los paréntesis.
En el script, CHAIN da nombres a los argumentos que se usaron en la línea de comandos cuando se llamó a RUNCOM, por ejemplo, poner CHAIN LALA FAFAen el script e invocarlo hará que LALA en el script se sustituya por un 3 cuando se use en cualquier línea que venga después de CHAIN, mientras que FAFA seguirá siendo FAFA ya que RUNCOM se invocó sin especificar nada para él.RUNCOM XYZZY 3
Si un argumento de RUNCOM es (NIL), un parámetro posicional indicado como argumento de CHAIN en el script se expandirá a nada, por ejemplo, combinado con hará que ALPHA se sustituya por A y GAMMA por B, mientras que BETA se eliminará de cualquier comando que siga a CHAIN en el script.CHAIN ALPHA BETA GAMMARUNCOM A (NIL) B
Si un argumento RUNCOM es (END), el CHAINargumento correspondiente se tratará como (NIL) y todos los argumentos subsiguientes también se tratarán como (NIL).
Cualquier parámetro CHAINpuede usarse como nombre de comando en el script, es decir, puede ir antes que cualquier argumento. Un ejemplo sería RUNCOM SCRIPT LISTFcombinar con CHAIN CMDseguido de CMD al comienzo de la siguiente línea. CMD se sustituirá en LISTFlo que listará los archivos en el directorio (como el lscomando de Unix).
Una vez completadas las sustituciones, RUNCOM envía los comandos a la subrutina de la biblioteca SCHAIN, que también está disponible para otros programas. [ 1 ]
Véase también
Referencias
- 1 2 Grisman, PA, ed. (1969). El sistema de tiempo compartido compatible: una guía para programadores, 2.ª ed . Boston: The MIT Press. pág. 525.
- ↑ Pouzin, Louis (25 de noviembre de 2000). "El origen de la concha" . Multicians . Consultado el 31 de julio de 2017 .
- ↑ Pouzin, Louis (2 de abril de 1965). The SHELL: Una herramienta global para llamar y encadenar procedimientos en el sistema (PDF) (Informe). Proyecto MAC del Instituto Tecnológico de Massachusetts. MDN-4 . Recuperado el 9 de abril de 2022 .
- ↑ Pouzin, Louis (7 de abril de 1965). RUNCOM - Un procesador de macroprocedimientos para el sistema 636 (PDF) (Informe). Proyecto MAC del Instituto Tecnológico de Massachusetts. MDN-4 . Consultado el 9 de abril de 2022 .
- ↑ "¿En Unix, qué significan algunos comandos con nombres poco claros?" . Base de conocimientos de TI . Universidad de Indiana . Archivado del original el 10/06/2010 . Consultado el 06/01/2024 .
{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace ) - ↑ https://www.oreilly.com/pub/au/2933 O'Reilly, Biografía de Vicki Brown
- ↑ "Unix y Multics" . Consultado el 20 de abril de 2009 .
- Historia de la informática en Francia
- Software Unix