230 likes | 396 Views
Entornos de programación. Lenguajes de guiones ( Scripting Languages ). Grupos de lenguajes de programac. Lenguajes para programación de sistemas System programming languages Rigurosos, seguros, eficientes Adecuados para programas complicados Lenguajes de guiones ( scripts )
E N D
Entornos de programación Lenguajes de guiones (Scripting Languages)
Grupos de lenguajes de programac. • Lenguajes para programación de sistemas • System programming languages • Rigurosos, seguros, eficientes • Adecuados para programas complicados • Lenguajes de guiones (scripts) • Scripting languages • Flexibles, menos seguros, menos eficientes • Adecuados para programas sencillos
Ejemplos de leng. de programación • Lenguajes para programación de sistemas • COBOL, FORTRAN, C/C++/C# • Pascal, Modula-2, Oberon, Ada • Java • Lisp, Haskell, Smalltalk, Eiffel, ... • Lenguajes de guiones (scripts) • Lenguajes de órdenes (command/shell languages) • Rexx, Tcl, Perl, Pyton, Ruby • VBScript, JavaScript
Leng. de órdenes: características • Asociados a algún Sistema Operativo • Modos interactivo y no interactivo • Órdenes de usuario / automatización de operaciones • Funciones • Ejecutar programas • Usar/configurar dispositivos y servicios del S.O. • Manipular ficheros y grupos de ficheros • Elementos básicos de programación • Alternativas, bucles, variables, subprogramas, detección de errores, etc.
Lenguajes de órdenes: Ejemplos • MS-DOS, Windows • CMD.EXE - 32 bits (WinNT/2000/XP ) • COMMAND.COM - 16 bit (MS-DOS, Win9x) • UNIX, Linux • sh (Bourne, estándar) • csh, tcsh (C, algo irregular) • ksh (Korn, UNIX de ATT) • bash (Bourne actualizado, Linux)
Lenguaje de órdenes de WinNT • Sintaxis general • orden argumentos... • orden interna (DIR, COPY, ... - no devuelve error) • orden externa (programa o script - devuelve error) • Comentarios • REM texto del comentario • :: texto del comentario • Etiquetas • :nombre • GOTO nombre
Lenguaje de órdenes de WinNT • Argumentos actuales • valor (sin blancos) • /x (opción) • "valor ...\" ..." (con blancos, " literal) • Órdenes compuestas • orden ... & orden ... (secuencia) • orden ... && orden ... (condicional, si éxito) • orden ... || orden ... (condicional, si fallo) • ( órdenes ... ) (orden compuesta) • ^&^| ( & o | literal )
Lenguaje de órdenes de WinNT • Escribir resultados • ECHO resultado • ECHO. (línea en blanco) • Traza de ejecución • ECHO ON/OFF (control de traza) • @orden (suprime traza) • ECHO (consulta estado de traza) • Terminar la ejecución • EXIT [/B [nivelerror]]
Lenguaje de órdenes de WinNT • Ejecutar un programa o un fichero de texto con órdenes (script) • nombre argumentos... • ejecuta nombre.bat/cmd/exe/com • lo busca en el directorio actual y en el PATH • si es un script (.bat, .cmd), no retorna • CALL nombre argumentos... • si es un script, sí retorna • CMD /C orden... • Ejecuta un shell secundario y retorna • ERRORLEVEL (nivel de retorno)
Lenguaje de órdenes de WinNT • Argumentos o parámetros • nombre arg1 arg2 ... • %1, %2, ... %9 • SHIFT (%1%2 %3 %4...) • %0 (nombre) • %* (todos los argumentos) • Redirección de la E/S estándar • nombre < entrada | otro-nombre > salida • ... >> salida (añade nuevo texto) • ... 2> salida (redirige salida de error) • ... 2>&1 (combina error y salida normal)
Lenguaje de órdenes de WinNT • Entorno o contexto de ejecución • SET variable=valor (¡ojo!, sin dejar espacio) • SET variable= (suprime la variable) • %variable% (recupera el valor) • SET prefijo (presenta una o varias variable) • SET (presenta todas las variables) • PATH lista-de-directorios (SET PATH=...) • PATH (ECHO %PATH%) • CD directorio (cambia directorio actual) • x: (cambia unidad actual) • CD (consulta directorio actual)
Lenguaje de órdenes de WinNT • Cambio de directorio, temporal • PUSHD directorio (cambia directorio actual) • POPD (restaura anterior directorio actual) • PUSHD/POPD puede anidarse • Entorno de ámbito limitado • SETLOCAL (inicia ámbito local) • SET/CD/PATH (cambios locales) • fin del guión (termina el ámbito local) • ENDLOCAL (termina el ámbito local) • SETLOCAL/ENDLOCAL puede anidarse
Lenguaje de órdenes de WinNT • Estructuras de control: IF-THEN-ELSE • IF condición acción • IF condición ( acción )ELSE acción • Condiciones • valor1 == valor2 (compara texto) • valor1 compara valor2 (compara número o texto) • EQU, NEQ, LSS, LEQ, GTR, GEQ • /I comparación (no distingue mayus./minus.) • EXIST nombre (existe fichero o directorio) • EXIST directorio\nul (existe directorio) • ERRORLEVEL valor (error >= valor) • NOT condición (negación)
Lenguaje de órdenes de WinNT • Estructuras de control: IF-GOTO IF NOT condición GOTO no-condición ... acción de sí-condición (then) GOTO fin-condición :no-condición ... acción de no-condición (else) :fin-condición
Lenguaje de órdenes de WinNT • Estructuras de control: bucle WHILE :inicio-bucle IF NOT condición GOTO fin-bucle ... acción del bucle GOTO inicio-bucle :fin-bucle
Lenguaje de órdenes de WinNT • Estructuras de control: bucles FOR • FOR %%x IN (lista) DO acción-con-%%x • repite por cada valor de lista o archivos (lista=comodines) • FOR %%x IN (lista) DO CALL acción... • evita salir del bucle si acción no retorna • FOR /D %%x IN (lista) DO ...FOR /R [raíz] %%x IN (lista) DO ... • repite para cada directorio (/D) o árbol de subdirector. (/R) • FOR /L %%x IN (inicio, paso, fin) DO ... • bucle con contador
Lenguaje de órdenes de WinNT • Designar ficheros y grupos de ficheros • unidad:\directorio\...\nombre.ext • por omisión, unidad o directorio actual • . (directorio actual) • .. (directorio padre) • ?* (comodines) • Lista de ficheros o directorios • DIR patrón • DIR (equivale a DIR *) • DIR/opciones... (/S /P /W /B /O ... etc.)
Lenguaje de órdenes de WinNT • Listar el contenido de un fichero (texto) • TYPE fichero(s) (admite patrones) • Cambiar el nombre/extensión • REN fichero nuevo-nombre (admite patrones) • nuevo patrón: nombre.*, *.ext • Eliminar ficheros • DEL patrón (¡ojo!: * elimina todo)
Lenguaje de órdenes de WinNT • Copiar o mover ficheros • COPY origen destino (destino fich. o dir.) • COPY origen (destino = .) • MOVE origen destino (destino dir.) • MOVE origen (destino = .) • Crear y eliminar directorios • MKDIR directorio • RMDIR directorio (debe estar vacío) • se pueden abreviar: MD, RD
Lenguaje de órdenes de WinNT • Expansión de parámetros (referencia a ficheros) • %~ccp (cc: letras de código, p: parámetro) • códigos: f: completo, d: unidad,p: directorio, n: nombre, x: extensióna: atributos, t: fecha/hora, z: tamaño • Ejemplo: cd “c:\uno” %3=“dos\tres.txt”%~f3 c:\uno\dos\tres.txt%~d3 c:%~p3 \uno\dos\%~n3 tres%~x3 .txt
Lenguaje de órdenes de WinNT • Expansión de variables (sustitución de texto) • %var:antes=después% • Ejemplo:SET var=textoECHO %var% -- %var:x=X% texto -- teXto
Lenguaje de órdenes de WinNT • Cálculos aritméticos • SET /A variable = expresión • Ejemplo:SET /A x = 11 + 22x 33SET /A x = x + 5x 38 • Obtener ayuda sobre una orden • orden /? • help [orden]
Lenguaje de órdenes de WinNT • Ayuda para la interacción • CLS (borra la pantalla) • COLOR bf (cambia los colores) bf (hexadecimal: fondo/texto) • PAUSE (espera pulsación de tecla) • MORE [fichero] (inserta pausas en texto largo) • CHOICE [/C:opciones] [mensaje] (lee opcióny fija ERRORLEVEL. Requiere instalar kit de recursos)