stringtranslate.com

COMANDO DE EJECUCIÓN

RUNCOM es un procesador de comandos (script) macro CTSS . [1]

Historia

Louis Pouzin creó RUNCOM para CTSS alrededor de 1963. [2] Publicó un artículo en 1965 que describe un diseño para el shell Multics que incluye una breve descripción de RUNCOM [3] seguido de un segundo artículo que publicó cinco días después que describe un diseño para RUNCOM que agregó comandos para flujo de control , ramificación condicional y bucle. [4]

En el contexto de los sistemas tipo Unix, el término rc hace referencia a la frase " ejecutar comandos ". Se utiliza para cualquier archivo que contenga información de inicio de un comando.

De Brian Kernighan y Dennis Ritchie : [5]

Había una utilidad que ejecutaba un conjunto de comandos almacenados en un archivo; se llamaba runcom, por "ejecutar comandos", y el archivo comenzó a llamarse "un runcom". rc en Unix es un fósil de ese uso.

Tom Van Vleck , un ingeniero de Multics , también ha recordado la extensión rc: "La idea de que el shell de procesamiento 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, la fuente del sufijo '.rc' en algunos archivos de configuración de Unix". [6]

Este es también el origen del nombre del shell rc del Plan 9 de Bell Labs creado por Tom Duff . Se llama "rc" porque la función principal de un shell es "ejecutar comandos".

Aunque no es históricamente preciso, rc también puede expandirse como "control de ejecución", porque 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 shell en el sentido del shell de UNIX. Cuando un usuario escribe comandos en CTSS, estos van al supervisor (kernel), no a un programa tipo shell de UNIX. Los usuarios no pueden escribir comandos en RUNCOM, éste procesa archivos de disco. Los archivos CTSS tienen un nombre y un segundo nombre separados por espacios, p. ej. FOO BCD .

Descripción de RUNCOM

Las cadenas de comandos RUNCOM, también conocidas como macrocomandos (ambos términos significan secuencias de comandos), son archivos con un segundo nombre, RUNCOM o BCD, que contienen cero o más líneas. Las líneas de la secuencia de comandos son líneas en blanco, comentarios, comandos normales (del tipo que se pueden introducir en la línea de comandos del supervisor) o el pseudocomando (comando integrado únicamente en RUNCOM) CHAIN.

Los comentarios comienzan con $o *como primer carácter de la línea. Los comentarios que utilizan $se imprimen (incluido el $) cuando se ejecuta RUNCOM, mientras que los que utilizan *no se imprimen en absoluto. La sustitución de parámetros no se produce en los comentarios.

Cuando un usuario invoca RUNCOM, los argumentos (parámetros) deben comenzar con el primer nombre del archivo que contiene el script. Si un usuario invoca RUNCOM sin argumentos, imprime algunas instrucciones sobre cómo usarlo y se detiene, devolviendo al usuario a la línea de comandos del supervisor (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) que incluyen los paréntesis.

En el script, CHAIN ​​da nombres a los argumentos que se usaron en la línea de comando cuando se llamó a RUNCOM, por ejemplo, poner CHAIN ​​LALA FAFA en el script e invocar RUNCOM XYZZY 3 hará que LALA en el script se sustituya por un 3 cuando se usa en cualquier línea que venga después de CHAIN ​​mientras que FAFA seguirá siendo FAFA ya que se invocó RUNCOM sin especificar nada para ello.

Si un argumento de RUNCOM es (NIL), un parámetro posicional indicado como un argumento de CHAIN ​​en el script se expandirá a nada, por ejemplo, CHAIN ​​ALPHA BETA GAMMA combinado con RUNCOM A (NIL) B 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.

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 primero antes de cualquier argumento. Un ejemplo sería RUNCOM SCRIPT LISTFcombinar con CHAIN CMDseguido de CMD al comienzo de una línea siguiente. CMD se sustituirá en LISTFlo que enumerará los archivos en el directorio (como el lscomando 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. ^ ab Grisman, PA, ed. (1969). El sistema de tiempo compartido compatible: guía del programador, 2.ª edición. Boston: The MIT Press. pág. 525.
  2. ^ Pouzin, Louis (25 de noviembre de 2000). «El origen de la concha». Multicians . Consultado el 31 de julio de 2017 .
  3. ^ Pouzin, Louis (2 de abril de 1965). The SHELL: A Global Tool for Calling and Chaining Procedures in the System (PDF) (Informe). Instituto Tecnológico del Proyecto Massachusetts. Proyecto MAC. MDN-4 . Consultado el 9 de abril de 2022 .
  4. ^ Pouzin, Louis (7 de abril de 1965). RUNCOM - A Macro-Procedure Processor for the 636 System (PDF) (Informe). Instituto Tecnológico del Proyecto Massachusetts. Proyecto MAC. MDN-4 . Consultado el 9 de abril de 2022 .
  5. ^ "En Unix, ¿qué significan algunos comandos con nombres poco conocidos?". IT Knowledge Base . Indiana University . Consultado el 20 de abril de 2009 .
  6. ^ "Unix y Multics" . Consultado el 20 de abril de 2009 .