Download Entornos de desarrollo de software
Document related concepts
no text concepts found
Transcript
Entornos de programación Lenguajes de guiones (Scripting Languages) © 2004-2006 Manuel Collado Script-1 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 © 2004-2006 Manuel Collado Script-2 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 © 2004-2006 Manuel Collado Script-3 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. © 2004-2006 Manuel Collado Script-4 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) © 2004-2006 Manuel Collado Script-5 Lenguaje de órdenes de WinNT Sintaxis general orden argumentos... interna (DIR, COPY, ... - no devuelve error) orden externa (programa o script - devuelve error) orden Comentarios REM texto del comentario :: texto del comentario Etiquetas :nombre GOTO nombre © 2004-2006 Manuel Collado Script-6 Lenguaje de órdenes de WinNT Argumentos actuales valor /x "valor ...\" ..." (sin blancos) (opción) (con blancos, " literal) Órdenes compuestas orden ... & orden ... orden ... && orden ... orden ... || orden ... ( órdenes ... ) ^& ^| © 2004-2006 Manuel Collado (secuencia) (condicional, si éxito) (condicional, si fallo) (orden compuesta) ( & o | literal ) Script-7 Lenguaje de órdenes de WinNT Escribir resultados (línea en blanco) Traza de ejecución ECHO resultado ECHO. ECHO ON/OFF @orden ECHO (control de traza) (suprime traza) (consulta estado de traza) Terminar la ejecución EXIT [/B [nivelerror]] © 2004-2006 Manuel Collado Script-8 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 © 2004-2006 Manuel Collado (nivel de retorno) Script-9 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) © 2004-2006 Manuel Collado Script-10 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) © 2004-2006 Manuel Collado Script-11 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 © 2004-2006 Manuel Collado Script-12 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 valor1 compara valor2 (compara texto) (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) © 2004-2006 Manuel Collado Script-13 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 © 2004-2006 Manuel Collado Script-14 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 © 2004-2006 Manuel Collado Script-15 Lenguaje de órdenes de WinNT Estructuras de control: bucles FOR FOR %%x IN (lista) DO acción-con-%%x repite 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 por cada valor de lista o archivos (lista=comodines) para cada directorio (/D) o árbol de subdirector. (/R) FOR /L %%x IN (inicio, paso, fin) DO ... bucle con contador © 2004-2006 Manuel Collado Script-16 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 DIR /opciones... © 2004-2006 Manuel Collado (equivale a DIR *) (/S /P /W /B /O ... etc.) Script-17 Lenguaje de órdenes de WinNT Listar el contenido de un fichero (texto) (admite patrones) Cambiar el nombre/extensión TYPE fichero(s) REN fichero nuevo-nombre (admite patrones) nuevo patrón: nombre.*, *.ext Eliminar ficheros DEL patrón © 2004-2006 Manuel Collado (¡ojo!: * elimina todo) Script-18 Lenguaje de órdenes de WinNT Copiar o mover ficheros COPY origen destino COPY origen MOVE origen destino MOVE origen (destino fich. o dir.) (destino = .) (destino dir.) (destino = .) Crear y eliminar directorios MKDIR directorio RMDIR directorio (debe estar vacío) se pueden abreviar: MD, RD © 2004-2006 Manuel Collado Script-19 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ón a: 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 © 2004-2006 Manuel Collado Script-20 Lenguaje de órdenes de WinNT Expansión de variables (sustitución de texto) %var:antes=después% Ejemplo: SET var=texto ECHO %var% -- %var:x=X% texto -- teXto © 2004-2006 Manuel Collado Script-21 Lenguaje de órdenes de WinNT Cálculos aritméticos SET /A variable = expresión Ejemplo: SET /A x = 11 + 22 x 33 SET /A x = x + 5 x 38 Obtener ayuda sobre una orden orden /? help [orden] © 2004-2006 Manuel Collado Script-22 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ón y fija ERRORLEVEL. Requiere instalar kit de recursos) © 2004-2006 Manuel Collado Script-23