Lenguaje de comando DIGITAL

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

Lenguaje de comandos DIGITAL (DCL) es el lenguaje de comandos estándar adoptado por muchos de los sistemas operativos creados por Digital Equipment Corporation. DCL tuvo sus raíces en IAS, TOPS-20 y RT-11 y se implementó como estándar en la mayoría de los sistemas operativos de Digital, en particular RSX-11 y RSTS/E, pero tomó su forma más poderosa en VAX/ VMS (más tarde OpenVMS). DCL continúa siendo desarrollado por VSI como parte de OpenVMS.

Escrito cuando el lenguaje de programación Fortran se usaba mucho, DCL es un lenguaje de programación que admite varios tipos de datos, incluidas cadenas, números enteros, matrices de bits, matrices y valores booleanos, pero no números de punto flotante. El acceso a los servicios del sistema de OpenVMS (API del núcleo) se realiza a través de funciones léxicas, que funcionan igual que sus homólogos del lenguaje compilado y permiten que los scripts obtengan información sobre el estado del sistema. DCL incluye IF-THEN-ELSE, acceso a todos los tipos de archivos de Record Management Services (RMS), incluidos los de flujo, indexados y secuenciales, pero carece de DO-WHILE u otra construcción de bucle, lo que requiere que los usuarios se conformen con IF y GOTO-label. declaraciones en su lugar.

DCL también está disponible para otros sistemas operativos, incluido

  • VCL y VX/DCL para Unix,
  • VCL para MS-DOS, OS/2 y Windows,
  • PC-DCL y Open DCL para Windows/Linux
  • y Accelr8 DCL Lite para Windows.

DCL es la base del lenguaje XLNT, implementado en Windows mediante una combinación de motor intérprete-IDE-WSH con capacidades CGI distribuida por Advanced System Concepts Inc. desde 1997.

Analizador de línea de comando

Para la implementación de OpenVMS, el analizador de línea de comandos es una biblioteca en tiempo de ejecución (CLI$) que se puede compilar en aplicaciones de usuario y, por lo tanto, proporciona una interfaz de línea de comandos coherente para ambos sistemas operativos. comandos proporcionados y comandos escritos por el usuario. La línea de comando debe comenzar con un verbo y luego va seguida de hasta 8 parámetros (argumentos) y/o calificadores (interruptores en la terminología Unix) que comienzan con un '/' personaje. A diferencia de Unix (pero similar a DOS), no se requiere un espacio antes de '/'. Los calificadores pueden ser independientes de la posición (ocurren en cualquier lugar de la línea de comando) o dependientes de la posición, en cuyo caso el calificador afecta el parámetro que aparece después. La mayoría de los clasificados son independientes de la posición. A los calificadores también se les pueden asignar valores o una serie de valores. Sólo se requiere la primera parte más significativa del verbo y el nombre del calificador. Los parámetros pueden ser números enteros o texto alfanumérico.

Un ejemplo de comando del sistema operativo podría verse así:

 set auditoría /alarma /habilitación=autorización, ruptura=Todos) show dispositivo /archivos $1$DGA1424:

El segundo comando show también podría escribirse como:

 sho dev $1$DGA1424:/fil

Si bien la documentación de DCL generalmente muestra todos los comandos DCL en mayúsculas, los comandos DCL no distinguen entre mayúsculas y minúsculas y pueden escribirse en mayúsculas, minúsculas o mixtas.

Algunas implementaciones como OpenVMS y RSX utilizaron un esquema de unicidad mínima para permitir acortar los comandos.

A diferencia de otros sistemas que utilizan rutas para localizar comandos, DCL requiere que los comandos se definan explícitamente, ya sea mediante definiciones CLD (Definición de lenguaje de comandos) o un símbolo externo. La mayoría de los comandos nativos de OpenVMS se definen mediante archivos CLD; estos son compilados por la CDU, la utilidad de definición de comandos, y agregados a una 'tabla' -- SYS$LIBRARY:DCLTABLES.EXE de forma predeterminada, aunque los procesos son libres de usar sus propias tablas y luego el usuario puede invocarlos. Por ejemplo, definir un comando FOO que acepte la opción "/BAR" y se implementa mediante la imagen SYS$SYSEXE:FOO.EXE podría hacerse con un archivo CLD similar a:

 DEFINE VERB FOO
IMAGE "SYS$SYSEXE:FOO.EXE"
QUALIFIER BAR

El usuario puede entonces escribir "FOO" o "FOO/BAR ", y se invocará el programa FOO. El lenguaje de definición de comandos admite muchos tipos de opciones, por ejemplo fechas y especificaciones de archivos, y permite que un calificador cambie la imagen invocada, por ejemplo "CREATE", para crear un archivo, frente a "CREATE/DIRECTORY" para crear un directorio.

El otro método (más simple, pero menos flexible) para definir comandos es mediante comandos externos. Esto es más parecido al método Unix de invocar programas. Al dar el comando:

 foo:= $sys$sysexe:foo.exe

el comando 'FOO' invocará FOO.EXE y proporcionará cualquier argumento adicional literalmente al programa, por ejemplo, "foo -v". Este método se utiliza generalmente para programas portados desde Unix y otros sistemas no nativos; para programas en C que utilizan la sintaxis de comandos argc y argv.

Las versiones de OpenVMS DCL a partir de V6.2 admiten el nombre lógico DCL$PATH para establecer rutas de comando de estilo Unix. Este mecanismo se conoce como Comando Extranjero Automático. DCL$PATH permite especificar una lista de directorios, y luego se buscan en estos directorios procedimientos de comando DCL (comando.COM) y luego archivos ejecutables. imágenes (comando.EXE) con nombres de archivos que coincidan con el comando ingresado por el usuario. Al igual que los comandos externos tradicionales, los comandos externos automáticos también permiten la entrada de comandos al estilo Unix.

Secuencias de comandos

Los scripts DCL se parecen mucho a cualquier otro lenguaje de scripting, con algunas excepciones. Todos los verbos DCL en un script están precedidos por el símbolo $; otras líneas se consideran entradas del comando anterior. Por ejemplo, para usar el comando TIPO para imprimir un párrafo en la pantalla, se podría usar un script similar a:

$ TYPE SYS$INPUT:
Este es un ejemplo de uso del verbo TYPEen el lenguaje DCL.$ EXIT

Referenciación de variables indirectas

Es posible crear matrices en DCL a las que se hace referencia mediante símbolos traducidos. Esto permite al programador construir estructuras de datos de tamaño arbitrario utilizando los datos mismos como función de indexación.

$ i = 1$ variable'i ' = "azul"$ i = 2 $ variable'i ' = "verde"$ j = 1$ color = variable'j '$ arco iris'color ' = "rojo"$ color = variable'i '$ arco iris'color ' = "amarillo"

En este ejemplo, a la variable rainbowblue se le asigna el valor "red" y a rainbowgreen el valor "amarillo".

Comandos

La siguiente es una lista de comandos DCL para tareas informáticas comunes que son compatibles con la interfaz de línea de comandos de OpenVMS.

  • COPY
  • COPY/FTP
  • CREATE
  • DELETE
  • DIRECTORIA
  • EDIT
  • LOGOUT
  • PRINT
  • RENAME
  • SET
  • SHOW
  • TYPE

Funciones léxicas

Las

funciones léxicas proporcionan funciones de cadena y acceso a datos mantenidos por VMS.

Algunos léxicos son:

  • F$EXTRACT(start,length,string) - extraer una subestring
  • F$CVTIME — obtener información de fecha/hora, por ejemplo.
    YEST_DOW=F$EXTRACT(0,3,F$CVTIME(DATE_EXPR,,"WEEKDAY"))
  • F$ELEMENT(0," ",ABC_DEF) para ABC_DEF = "ABC DEF" el regreso "ABC"
  • F$SEARCH — busca un archivo, devuelve un null ("") si no se encuentra
  • F$LOCATE(needle,haystack)
  • F$SetPRV("BYPASS,CMKRNL,ALTPRI") - Es un privilegio tener acceso a esto.
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save