Por: Frank da Cruz
Artículo original: https://www.kermitproject.org/ckscripts.html
Actualización más reciente: Vier Jul 14 19:40:54 2023
C-Kermit Tutorial / Kermit 95 Tutorial / Ver los scripts /... / Variables incorporadas / Funciones incorporadas
Contenido:
- Introducción
- Descargador/instalador de scripts de Kermit
- Tutorial de scripts
- Últimas adiciones a la biblioteca de scripts
- Archivos de inicialización de C-Kermit
- Scripts HTML
- Scripts FTP
- Scripts de Internet
- Scripts de registro
- Scripts de módem
- Scripts de buscapersonas
- Scripts de formateo de pantalla
- Scripts de raspado de pantalla
- Scripts de transferencia de archivos
- Scripts de gestión de archivos
- Scripts de cálculo numérico
- Aritmética fecha-hora
- Programación orientada a objetos
- Pruebas de tortura de lenguajes de script
- Para MS-DOS Kermit...
SCRIPTS RECIENTES (detalles más abajo)
Julio de 2023. Para jubilados que viven en apartamentos: haga un seguimiento de sus ingresos frente a su alquiler año tras año; vea cuál sube más rápido. Ilustra cómo incrustar datos tabulares en el propio script en lugar de leerlos de un fichero externo; cómo descomponer una fila de tabla en sus elementos; el uso de múltiples matrices asociativas al mismo tiempo; cómo direccionar simbólicamente elementos de matrices asociativas; y el uso de expresiones S cuando se necesitan resultados en coma flotante (porcentajes en este caso).
Junio 2023. Crea una entrada para la tabla de builds de C-Kermit 10.0, para ser usada después de construir una versión Beta de prueba, o para el caso, la verdadera versión 10.0 cuando esté lista. Por ahora, sólo para sistemas operativos de la familia Unix.
Marzo 2023. Para sitios web: encuentra páginas perdidas que tienen archivos de copia de seguridad de Emacs, así que si no puedes encontrar la página real en cualquier lugar al menos puedes restaurar desde la última copia de seguridad.
Abril 2022. Script de Kermit 95 para entrar en un host cuyo servidor SSH no soporta ninguno de los cifrados que soporta el cliente SSH de K95 usando un host o subsistema Linux como relay. Ya no es necesario ahora que C-Kermit 10.0 para Windows está disponible.
Mayo 2021. Convertir la página de archivo Kermit para que siga mostrando listas de archivos después de convertir los enlaces de ftp: a http: debido a la "depreciación" de FTP por los principales navegadores web en marzo-abril de 2021. Básicamente, este script hace que se pueda hacer clic en los nombres de archivo de un listado de directorios para poder verlos o descargarlos.
2013-2023 (proyecto activo). Un script de producción para crear, modificar y actualizar galerías de imágenes en la Web.
Mayo de 2017. Convierte archivos de texto plano a html. Este es también el primer script de Kermit que se puede utilizar en tuberías Unix.
2016. Un simple programa recordatorio que puede ser invocado desde su perfil de inicio de sesión.
2014. Descarga e instalación automatizada de scripts de la biblioteca de scripts de Kermit. Actualizado en 2022 para "cumplir" con la "deprecación" del protocolo ftp para descarga.
2014. Una forma automatizada de reemplazar un bloque de texto (como un aviso de copyright multilínea) en todos los archivos que lo contienen.
2013. Produce un listado del directorio de archivos de imagen JPG que muestra la fecha en que se tomaron, la anchura, la altura y si es vertical u horizontal.
2013. Un script para renombrar archivos JPG (por ejemplo, de cámaras, escáneres o teléfonos móviles) según la "hora de toma" o la "hora de creación". Se puede renombrar un montón de imágenes de diferentes dispositivos en orden fecha-hora.
PREFACIO
Mientras escribo esto, cada vez menos gente sabe lo que es Kermit; si es tu caso, puedes hacer clic aquí para obtener una visión general. El apogeo de Kermit fue en los años 80 y 90, cuando casi todo el mundo que utilizaba ordenadores para comunicarse con otros ordenadores usaba Kermit como emulador de terminal y para la transferencia de archivos. C-Kermit para Unix y VMS y MS-DOS Kermit para DOS se desarrollaron conjuntamente. Cuando empezamos a añadir capacidades de automatización, el lenguaje de scripting era común a ambos programas. Cuando salió Kermit 95 para Windows, tenía el mismo lenguaje de secuencias de comandos, ya que está basado en C-Kermit.
Al principio, el lenguaje de scripts estaba orientado a las comunicaciones y a las tareas de transferencia de archivos, pero con el tiempo se ha convertido en un lenguaje de programación de propósito general a una escala intermedia entre los scripts de shell y Perl, con partes de scripts de shell Unix, C, Bliss, Lisp, Snobol, Algol y PL/I mezclados, con bucles, variables, matrices, funciones, aritmética, matrices asociativas, recursión, lógica booleana, manipulación de cadenas, i/o y gestión de archivos, concordancia de patrones, procesamiento de listas, etcétera.
Hoy en día se pueden escribir programas de script Kermit para hacer casi cualquier cosa, sin importar si implica comunicación o no (y si implica comunicación, puede ser a través de conexiones serie, conexiones de red de texto claro o conexiones de red seguras). Los principales usos de Kermit ahora son la administración de sistemas y sitios web y el desarrollo de sitios web, y puedes ver muchos ejemplos de scripts de producción en estas áreas a continuación.
Hablando por mí mismo, he programado desde mediados de los 60, he dominado muchos lenguajes de programación, y desearía que todos ellos, excepto C, no hubieran desaparecido (echamos mucho de menos PL/I, Snobol y Mainsail; eran potentes, estables, consistentes y estaban bien documentados). Las opciones actuales (C, shell scripts, etc.) son blancos móviles; los programas escritos en estos lenguajes no permanecen escritos; decaen con el tiempo a medida que los lenguajes y las bibliotecas y utilidades asociadas se redefinen constantemente. Por eso ahora escribo todos mis programas (excepto C-Kermit propiamente dicho, claro) en lenguaje Kermit... Porque el lenguaje en sí no cambia de forma incompatible con versiones anteriores, de modo que los "viejos" scripts nunca necesitan ser "actualizados", simplemente siguen funcionando, incluso cuando se publican nuevas versiones del propio Kermit. Y también porque siempre que hay un error en el lenguaje puedo arreglarlo yo mismo, y cuando hay algo que necesito hacer que no está en el lenguaje, puedo añadirlo yo mismo. Siempre de forma retro compatible.
Todavía no existe un manual coherente para el lenguaje Kermit. Todo está documentado en alguna parte, pero está disperso en libros (que ahora están en línea) y en una serie de páginas web. En julio de 2019, elaboré una guía completa con toda la información. Es como un índice; AQUÍ ESTÁ. Mientras tanto, esta página (la que estás leyendo) es un lugar bastante bueno para empezar: Encuentra un script que haga algo similar a lo que quieres hacer y úsalo como guía. Y cuando veas un comando o función que no entiendas, usa el comando HELP incorporado en C-Kermit para encontrar información sobre él:
help ?
Muestra los temas de ayuda
help command
Da información sobre el comando dado
help set command
Proporciona información sobre el comando SET dado
help function name
Proporciona información sobre la función incorporada.
Utilice también el cuadro de diálogo de búsqueda de Google en la página de inicio y pruebe la nueva "Tabla de contenido".
-Frank da Cruz, May Day 2017, actualizado el 29 de agosto de 2019.
INTRODUCCIÓN
El lenguaje de comandos y scripts de C-Kermit y Kermit 95 se describe en Using C-Kermit, 2nd Edition, complementado por C-Kermit 7.0 Supplement, C-Kermit 8.0 Supplement y C-Kermit 9.0 Supplement. También puede obtener información general y tutoriales AQUÍ para Kermit en general y AQUÍ para Kermit 95 en particular.
El software Kermit apareció por primera vez en 1981 para microordenadores CP/M y mainframes DECSYSTEM-20 e IBM. Y poco después para los PC IBM (y otros) con MS-DOS, y posteriormente para plataformas informáticas cada vez más distintas, en particular Unix y Microsoft Windows. El lenguaje de comandos, la sintaxis y (en la mayoría de los casos) la edición y asistencia de comandos se adaptaron del TOPS-20 EXEC, es decir, la interfaz de usuario (o "shell" en lenguaje moderno) del DECSYSTEM-20, que fue la plataforma principal para la informática académica en Columbia de 1977 a 1988. Entre sus características destacan la ayuda por campo con '?', el completado de palabras clave y nombres de archivo con Tab o Esc, y la ayuda integrada. Las capacidades de programación se añadieron al lenguaje de comandos a partir de C-Kermit 5A(190) para Unix, VMS, AOS/VS, Plan 9 (etc), y MS-DOS Kermit, y se han mejorado y ampliado desde entonces. Una característica única de los scripts Kermit es que son portables no sólo entre diferentes plataformas informáticas (como Unix y Windows) sino también entre diferentes métodos de comunicación (Telnet, FTP, Telnet seguro, FTP seguro, SSH, SSL, Kerberos IV/V, más de 100 tipos diferentes de módems y puerto serie directo).
Esta página ofrece una breve introducción a los scripts de Kermit, y una biblioteca de ejemplo, que se enumeran a continuación. Los marcados con (*) son scripts "kerbang" que, en UNIX, pueden utilizarse exactamente igual que los scripts de shell si se les da permiso de ejecución:
chmod +x scriptname
Los argumentos de la línea de comandos se aceptan de la forma esperada, p. ej:
autotelnet xyz.com myuserid
Esto hace que los argumentos de la línea de comandos estén disponibles para el script en las variables \%0 (nombre del script), \%1 (primer argumento), \%2 (segundo argumento), etc.
La primera línea de cada script kerbang tiene el siguiente aspecto:
#!/usr/local/bin/wermit +
(pero sin la sangría). Indica la ruta del ejecutable C-Kermit que va a ejecutar el script; cambie esta línea según sea necesario. El signo + al final es necesario si se van a pasar argumentos de línea de comandos al script (y no hace daño si no es así). La función "kerbang" requiere C-Kermit 7.0 o posterior. Para más información sobre los scripts kerbang, consulte la Sección del Suplemento de C-Kermit 7.0 sobre este tema.
ADVERTENCIA: En sistemas operativos basados en Unix, el archivo de script debe estar en formato de texto Unix para que el mecanismo Kerbang funcione. Es decir, las líneas deben estar terminadas y separadas sólo por salto de línea, no por retorno de línea y salto de línea (como ocurriría, por ejemplo, si cargara el archivo desde Windows en modo binario en lugar de en modo texto). Si la línea Kerbang termina con CR y LF, el shell Unix pensará que el CR es parte del nombre del archivo si no se incluye el signo '+', y fallará al encontrar "un intérprete válido" (es decir, Kermit) para el script. Si se incluye un signo +, el CR puede impedir que Kermit lo reconozca. Estas son características del shell Unix, y se aplican a los scripts de shell, scripts Perl, y cualquier otro tipo de script que utilice la convención "shebang" para invocar al intérprete apropiado. Para eliminar los retornos de carro utilice los siguientes comandos del shell Unix:
En plataformas no UNIX, estas secuencias de comandos se ejecutan mediante:
1- Dando un comando TAKE filename a Kermit. En C-Kermit 7.0 y posteriores, el filename puede ir seguido de argumentos, que se asignan a las variables \%1, \%2, ..., \%9.
2- Incluyendo el nombre de archivo del script como primer argumento de la línea de comandos del programa Kermit, seguido de un signo más, seguido de los argumentos. En VMS y Windows, el signo "más" parece causar problemas con el intérprete de comandos, por lo que en ese caso puede sustituirlo por un signo igual, pero poniéndolo después del nombre del archivo de guión en lugar de antes:
kermit script.ksc = arg1 arg2 arg3 ... VMS k95 script.ksc = arg1 arg2 arg3 ... Windows
Esto asigna arg1 a \%1, arg2 a \%2, y así sucesivamente.
3- En Windows 95/98/ME/NT/2000/XP/etc, por asociación de tipo de archivo (cuando el nombre de archivo del script tiene el sufijo ".ksc"), pero en este caso Windows no proporciona un mecanismo para pasar argumentos al script.
Fuera de UNIX, la línea "kerbang" no tiene ningún efecto, ya que es un comentario para Kermit. En VMS, cualquier referencia a "variables de entorno" puede satisfacerse mediante nombres lógicos o símbolos DCL.
Los scripts de esta página sólo tienen fines ilustrativos y no conllevan ninguna garantía, expresa o implícita.
SCRIPT PARA LA DESCARGA DE SCRIPTS
Desde enero de 2014 está disponible un nuevo script que simplifica la descarga de scripts de la Kermit Script Library y su instalación en tu propio ordenador. Se llama getkermitscript, PULSE AQUÍ para verlo (y descargarlo). Puede utilizar este script en un ordenador basado en Unix que tenga instalado C-Kermit 8.0 o posterior para descargar e instalar scripts de Kermit desde aquí en un simple comando como "getkermitscript photogallery.ksc". Algunas cosas a tener en cuenta
- Todos los nombres de archivos de script de la biblioteca Kermit están en minúsculas. El script getkermitscript lo sabe y pone en minúsculas cualquier argumento que usted haya puesto en mayúsculas.
- Los scripts de la biblioteca se almacenan sin ninguna extensión, aunque puede que los veas referidos como nombre.ksc.
PULSE AQUÍ para ver las instrucciones completas.
TUTORIAL DE SCRIPTING
- Para una introducción a C-Kermit, PULSE AQUÍ.
- Para una introducción a Kermit 95, PULSE AQUÍ.
El lenguaje de scripting Kermit es un lenguaje de programación similar a Perl, pero con una sintaxis diferente (porque el lenguaje Kermit es anterior a Perl y a muchos otros lenguajes de scripting). El lenguaje Kermit es portable a través de UNIX (Linux, AIX, HP-UX, Solaris, FreeBSD, IRIX, SINIX, QNX, SCO, Tru64, y cualquier otra variación conocida de UNIX), VMS, Stratus VOS, Data General AOS/VS, Windows 95/98/ME/NT/2000/XP/7/8/10, OS/2, Plan 9, OS-9/68000, Commodore Amiga, y otras plataformas, y funciona uniformemente en conexiones serie (directas o marcadas) y conexiones de red (texto claro o seguro). Por tanto, aprender el lenguaje es una buena inversión de su tiempo, ya que puede aplicarse a casi cualquier problema de comunicaciones. El lenguaje de scripts Kermit está documentado en el libro Using C-Kermit, pero por supuesto se han hecho muchas mejoras desde que se publicó el libro, que se explican en las actualizaciones de las versiones 7.0, 8.0 y 9.0, y se ilustran con scripts de ejemplo que se enumeran a continuación.
El lenguaje de scripts de Kermit es fácil de aprender si ya utiliza Kermit, ya que es el mismo que el lenguaje de comandos de Kermit. Un programa de script de Kermit es simplemente una serie de comandos de Kermit recopilados en un archivo o una macro. Para ejecutar el script, le dices a Kermit que TOME el archivo o HAGA la macro. O en UNIX también puedes ejecutarlo como si fuera un script de shell, como se describe al principio de esta página. En ambos casos puedes pasar parámetros al script en el comando que lo invoca.
Cuando se utiliza Kermit "manualmente", es decir, interactuando con el host directamente, normalmente se establece una conexión (SSH, TELNET, DIAL, etc.), y luego se interactúa con el otro ordenador directamente, alternando entre la pantalla de comandos de Kermit y la pantalla del terminal. El comando para pasar de la pantalla de comandos a la pantalla de terminal es CONNECT (C es una abreviatura suficiente). Para volver de la pantalla del terminal a la pantalla de comandos se requiere una "secuencia de escape" especial como Ctrl-\C, Ctrl-]C o Alt-x (Alt-x se utiliza en Kermit 95 y MS-DOS Kermit). Tenga en cuenta que el comando TELNET de Kermit es un atajo para SET HOST seguido de CONNECT; es decir, TELNET incluye un comando CONNECT implícito.
Cuando se automatiza una sesión, no se pasa de una "pantalla" a otra; no se CONECTA ni se escapa hacia atrás. En un script, todo se hace en modo comando. No hay pantalla de terminal en un script. En lugar de CONNECT (o TELNET, o RLOGIN, o SSH), use los siguientes comandos, que le dicen a Kermit que haga lo que usted haría "a mano":
SET HOST [ switches ] hostname-or-address [ switches ]
Abre una conexión de red pero permanece en modo comando, es decir, sin entrar en la pantalla Terminal o en modo CONNECT. Utilícelo en lugar de TELNET, CONNECT, SSH u otro comando que permita entrar en la pantalla del terminal. Sinónimo: OPEN HOST (que puede ser más evocador de la acción realizada).
Para conexiones serie o por módem, utilice:
SET MODEM TYPE [ name-of-modem or NONE ]
SET LINE device-name
SET SPEED interface-speed
[ DIAL phone-number ]
Abre una conexión serie directa o marcada pero permanece en modo comando. Tenga en cuenta que cuando el comando DIAL se ejecuta desde un archivo de comandos o macro, no entra automáticamente en modo CONNECT.Una vez abierta la conexión, utilice los siguientes comandos para simular lo que haría de forma interactiva:
INPUT tiempo de espera cadena
Espera hasta un máximo de segundos a que la cadena dada llegue desde el otro ordenador. Si llega, este comando tiene éxito; de lo contrario, el comando falla. Ejemplo: INPUT 10 login: El comando INPUT puede aceptar no sólo cadenas simples sino también patrones. Una forma alternativa, MINPUT, acepta una lista de cadenas y/o patrones coincidentes.
SET INPUT ECHO ON
Normalmente no ves diálogos con guión en tu pantalla. Utilice este comando para ver lo que Kermit y el host se dicen. Esto no afecta al funcionamiento del script, sólo a lo que puedes ver.
Comando IF FAILURE
Si el comando precedente (SET HOST, INPUT, o cualquier otro comando) falló, ejecute el comando dado.
Ejemplo: IF FAIL EXIT 1 "No login prompt". El comando puede ser una lista de comandos encerrados entre llaves, y la sentencia IF también puede tener una parte ELSE, que también puede ser un único comando o una lista de comandos.
Comando IF SUCCESS
Si el comando anterior tuvo éxito, ejecute el comando dado.
STOP [ number [ string ] ]
Detiene el script y vuelve al prompt de Kermit. El número es un código de éxito: 0 para éxito, distinto de cero para fracaso; el comando que invocó el archivo de comandos actual (TAKE) o macro (DO o "DO implícito") puede ser probado con IF SUCCESS o IF FAILURE basado en este código. Si se incluye una cadena, se imprime.
END [ number [ string ] ]
Como STOP, pero salta la pila de comandos sólo un nivel en lugar de volver al principio. Utilícelo para devolver antes de tiempo una macro o un fichero de comandos a su invocador. Sinónimo: POP.
EXIT [ number [ string ] ]
Detiene el script y sale de Kermit. El número es el código de estado de salida de Kermit, normalmente 0 para éxito, distinto de cero para fallo. Si se da un mensaje, se imprime.
OUTPUT cadena
Envía la cadena dada al otro ordenador. Los caracteres de control pueden incluirse en la cadena utilizando la notación \ddd (donde las d son dígitos, y ddd representa el código numérico para el carácter de control.
Ejemplo: OUTPUT olga\13
LINEOUT cadena
(C-Kermit 7.0 y posteriores; Kermit 95 1.1.20 y posteriores) Dado que es tan común imprimir una línea con un retorno de línea al final, este comando lo hace por ti, para que no tengas que acordarte de incluir \13 al final. lineout foo es equivalente a output foo\13.
INPUT toma el lugar de tus ojos, OUTPUT toma el lugar de tus dedos, e IF toma el lugar de tu cerebro.
El resto es programación normal: FOR, WHILE, SWITCH, GOTO, variables, arrays, funciones, estructura de bloques, nesting, scoping, y el resto, listado AQUÍ y documentado en el manual (igual que cualquier otro lenguaje de programación está documentado en su propio manual).
Aquí hay un ejemplo muy simple de hacer una conexión Telnet a UNIX e iniciar sesión:
set host foo.bar.baz.com ; Realiza la conexión
if fail stop 1 Conexión fallida ; Comprueba que se ha realizado
input 20 login: ; Espera 20 segundos a que aparezca login: prompt
if fail stop 1 No login prompt ; Comprueba que se ha producido
output myuserid\13 ; o "lineout myuserid"
input 5 Password: ; Espere 5 segundos a que aparezca Password: prompt
if fail stop 1 No Password prompt ; Compruebe que ha llegado
output mypassword\13 ; o "lineout mypassword"
Esto ilustra cómo sus acciones en la pantalla del terminal son simuladas por INPUT (ojos), OUTPUT (dedos), e IF (cerebro). Se puede elaborar en cualquier grado deseado: para utilizar variables en lugar de constantes para el host, nombre de usuario o contraseña; para pedir la contraseña para que no tenga que almacenarla en un archivo; para intentar algún tipo de acción de recuperación si un comando falla en lugar de simplemente detenerse, y así sucesivamente. Y, por supuesto, puedes añadir más pasos: hacer que transfiera un archivo, envíe un correo electrónico, lo que quieras.
La sintaxis del lenguaje de programación Kermit debería ser familiar para cualquiera que utilice otros lenguajes de scripting como el shell de UNIX. Es un lenguaje de sustitución de cadenas, por lo que se utiliza un "carácter de escape" (barra invertida) para indicar la sustitución de cadenas. Dado que se pueden sustituir muchos tipos de elementos, la barra invertida va seguida de un segundo carácter para indicar qué tipo de sustitución se va a realizar: una variable escalar, un elemento de matriz, el resultado de una función, un carácter especial, etc. Por ejemplo:
\%a | Variable escalar definida por el usuario, evaluada recursivamente |
\m(name) | Una variable escalar definida por el usuario, evaluada a un nivel de profundidad |
\v(name) | Una variable incorporada (como \v(time), "show var" para una lista) |
\&a[1] | Un elemento de matriz, evaluado recursivamente |
\fname(args) | Una invocación a una función ("show func" para una lista, "help func xxx" para detalles de la función xxx) |
\x0F | Un carácter cuyo código es el número hexadecimal dado (00-ff) |
\123 | Un carácter cuyo código es el número decimal dado (0-255) |
\\ | Una barra invertida literal. |
(PULSE AQUÍ para una explicación más detallada de esta notación).
Esto debería darle una idea de cómo leer los scripts de la biblioteca, y cómo escribir un script sencillo o adaptar uno de ellos a sus necesidades. Para obtener una breve descripción de un determinado comando o función de Kermit, utilice el comando HELP de Kermit. Para obtener una descripción de una función incorporada, escriba "help function xxx" en el prompt, donde xxx es el nombre de la función. Para un tratamiento exhaustivo, consulte el manual.
Por último, recuerde:
- No ponga un comando CONNECT en un script a menos que realmente quiera suspender la ejecución del script y entregar el control manual al usuario. Y recuerde que el comando CONNECT sólo puede funcionar si el trabajo tiene un terminal de control; no puede funcionar en un trabajo por lotes o cron donde no hay terminal.
- No se puede poner texto para el host "en línea". Kermit lee comandos del script, no texto para el host. Para enviar texto al host, utilice el comando OUTPUT o TRANSMIT.
- TELNET host es un atajo para SET HOST host, IF SUCCESS CONNECT. Dado que TELNET incluye un comando CONNECT implícito, no pongas un comando TELNET en tu script a menos que realmente quieras suspender la ejecución del script y entregar el control manual al usuario. Lo mismo ocurre con SSH y RLOGIN. En un script, use SET HOST en su lugar, con los switches apropiados (si es necesario) para indicar el tipo de conexión. HELP SET HOST para más detalles.
- Para más ejemplos, eche un vistazo a la biblioteca de abajo, y también vea los casos de estudio de C-Kermit. Consulte también la FAQ de C-Kermit, "¿Por qué no funciona mi script?".
C-Kermit / Kermit 95 / Kermit home
LA BIBLIOTECA DE SCRIPTS DE KERMIT
Añadidos recientes
Agosto de 2013, con actualizaciones posteriores. Un script de producción para crear, modificar y actualizar galerías de imágenes para la Web. Se requiere C-Kermit 9.0 o posterior. Sustituye al anterior script photoalbum, que era sólo una demo, no apto para producción.
Un programa que convierte un archivo de texto plano en una página Web. A diferencia de todos los otros scripts presentados aquí, éste puede ser usado en una tubería Unix.
Un simple programa recordatorio que puede ser invocado desde su perfil de acceso, o directamente, o de cualquier otra forma que desee. Ilustra algunas de las funciones de manejo de fechas de C-Kermit (conversión de formatos, comparación, ordenación). El texto de ayuda está AQUÍ.
Febrero de 2014. Una forma automatizada de reemplazar un bloque de texto (como un aviso de copyright multilínea) en todos los archivos que lo contienen. C-Kermit 9.0 o posterior.
Enero de 2014. Un script para descargar scripts de Kermit desde la Kermit Script Library e instalarlos en tu ordenador sin necesidad de editarlos ni dar ningún otro comando (antes siempre había que editar la "línea kerbang" y cambiar los permisos). Sólo Unix por ahora. Requiere C-Kermit 8.0 o posterior. Actualizado en 2022 para solucionar la desaparición del protocolo FTP de Intenet.
Septiembre de 2013. Produce un listado de directorios de archivos de imagen JPG que incluye (para cada archivo) fecha de toma, anchura, altura y si es vertical u horizontal.
Abril de 2013. Un script para renombrar archivos JPG según la "hora tomada" o la "hora creada". Esto permite que imágenes de múltiples fuentes, o cuyos nombres de archivo se han "enrollado" aparezcan en orden cronológico por nombre de archivo. Se requiere C-Kermit 9.0.304.
2009-2011. Un script de producción para configurar servidores HP Blade a través de su interfaz Integrated Lights Out (iLO).
Un conjunto de scripts para obtener informes de un Rolm CBX. C-Kermit 8.0 o posterior o Kermit 95 2.1 o posterior.
Kermit construye un mapa del sitio para un sitio web basado en un simple archivo de control que usted crea, indicando qué archivos e imágenes desea incluir. Es compatible con las extensiones de Google Image Sitemap. Si su archivo de control contiene texto codificado en ISO 8859-1 u otros conjuntos de caracteres de uso común, Kermit lo convierte a UTF-8, que es necesario en los sitemaps. Documentado AQUÍ. Requiere C-Kermit 9.0.
Lee un registro web TSV (Tab-Separated Record) de un sitio web bilingüe español-inglés, extrae las búsquedas en Google, normaliza el juego de caracteres y las mayúsculas de las cadenas de búsqueda en la medida de lo posible, e imprime las 20 búsquedas principales, junto con sus recuentos. Documentado AQUÍ. Requiere C-Kermit 9.0. [A partir de octubre de 2011 este script es en gran parte académico porque Google ya no incluye el texto de búsqueda en sus parámetros de URL].
Un sencillo script para comprobar la estructura #if/#ifdef/#ifndef..#endif en un archivo de código fuente C.
Como ifdef pero también muestra #define y #undef.
Macro para comparar dos números de cualquier longitud, enteros o de coma flotante, con o sin signo, incluso si son más largos que el tamaño de palabra de la máquina subyacente. Requiere C-Kermit 8.0 o posterior o K95 2.0 o posterior.
Macros para convertir cadenas de números decimales con signo a formato hexadecimal de complemento a dos y viceversa. Realiza su propia aritmética de cadenas, por lo que no está limitado por el tamaño de palabra de la máquina o el modelo de memoria. Tal como está escrito puede manejar enteros de hasta 128 bits. Obviamente, este funciona más lento que twoscomplementv1, que utiliza aritmética de máquina. Requiere C-Kermit 8.0 o posterior o K95 2.0 o posterior. (El script twoscomplementv2 sólo convertía en una dirección, esta versión incluye ambas direcciones).
Un script para convertir cadenas de números decimales con signo al formato de complemento a dos y mostrarlos en hexadecimal. Utiliza aritmética de máquina, por lo que los resultados están limitados por el tamaño de palabra subyacente y el modelo de memoria (por ejemplo, 32 bits). Requiere C-Kermit 8.0 o posterior o K95 2.0 o posterior.
Script CGI para procesar un formulario Web (en este caso una encuesta).
Crea un índice Web a partir del sitio FTP de Kermit, miles de archivos convertidos en enlaces clicables. Requiere C-Kermit 9.0 o posterior.
- pop.ksc Un script de producción completamente elaborado para obtener el correo de un servidor POP3 a través de una conexión protegida por SSL. Para una explicación y documentación, PULSE AQUÍ. Requiere C-Kermit 9.0 o posterior. Yo mismo utilicé este script (y el siguiente, mailcheck) para obtener mi correo electrónico todos los días hasta que Columbia cambió el correo Unix tradicional por Gmail.
- mailcheck Una envoltura para el script pop.ksc, que recoge su contraseña una vez, y luego comprueba si hay correo nuevo cada 5 minutos (u otro intervalo seleccionado) y lo recupera si hay alguno.
Scripts FTP:
A partir de 2022, estos ya no son útiles en la mayoría de los casos, ya que el protocolo y los servidores FTP han sido purgados de Internet.
Cómo automatizar sesiones FTP con C-Kermit 8.0 y Kermit 95 2.0 o posterior. El propio FTP ha pasado de moda, lo cual es una pena, pero algunos lugares todavía tienen servidores FTP a los que puedes acceder desde un cliente FTP en modo texto (pero no desde un navegador web como Chrome o Firefox).
Realiza una conexión FTP segura a IBM InfoExchange. Se requiere una versión segura de Kermit 95 2.0 (o posterior) o C-Kermit 8.0 (o posterior).
Renombrado múltiple: Muestra cómo renombrar una lista de archivos en un servidor FTP. Requiere Kermit 95 2.0 (o posterior) o C-Kermit 8.0 (o posterior).
Cómo obtener un listado de directorios de un servidor FTP que muestre la marca de tiempo completa de cada archivo. Requiere Kermit 95 2.0 o C-Kermit 8.0 (o posterior).
Muestra cómo enviar un archivo a un servidor FTP con un nombre único garantizado, incluso si el servidor no soporta STOU. Requiere Kermit 95 2.0 (o posterior) o C-Kermit 8.0 (o posterior).
Descarga diaria de nuevos RPMs desde el servidor Rawhide de Red Hat Linux. Requiere Kermit 95 2.0 (o posterior) o C-Kermit 8.0 (o posterior).
Utiliza FTP para sincronizar un directorio local con un directorio de un servidor remoto. Descarga archivos nuevos y archivos que han cambiado, omite archivos que no han cambiado, borra archivos locales que no tienen homólogos en el servidor. Funciona en todas las plataformas (cliente Windows o Unix; Unix, VMS, Windows o casi cualquier otro servidor); el cambio de modo texto-binario se realiza automáticamente. Kermit 95 2.0 (o posterior) o C-Kermit 8.0 (o posterior).
Utiliza FTP para sincronizar un árbol de directorios de un servidor remoto con un árbol de directorios local. El árbol de directorios local se duplica en el servidor. Sube archivos nuevos y archivos que han cambiado, omite archivos que no han cambiado. Funciona en todas las plataformas mediante el cambio automático de modo texto-binario. Kermit 95 2.0 (o posterior) o C-Kermit 8.0 (o posterior).
Otros scripts de Internet:
Un simple WHOIS de un solo paso, un front end a la utilidad regular whois para buscar cualquier dominio en un solo paso en lugar de dos.
Cómo presentar una interfaz orientada a comandos a los usuarios que acceden a Kermit directamente desde el exterior: dialup (ANSWER), Internet (SET HOST *), o incluso con Kermit ejecutándose como un servicio bajo inetd. En estas situaciones no hay controlador de terminal, por lo que Kermit debe manejar el eco y la edición por sí mismo, así como el análisis sintáctico de comandos y su ejecución. Este ejemplo implementa una simple "BBS" donde el usuario puede obtener listados de archivos y descargar archivos. Funciona con cualquier versión reciente de C-Kermit o Kermit 95.
Cliente para un subsistema SSH de transferencia y gestión de ficheros en C-Kermit: una alternativa a SFTP más potente, amigable y compatible con scripts. PULSE AQUÍ para ver la documentación. Requiere C-Kermit 8.0.201 o K95 2.0 (o posterior).
Realiza una sesión SSH automatizada. Se requiere C-Kermit 8.0 o K95 2.0 o posterior.
Realiza una conexión Telnet automática. Se requiere C-Kermit 7.0 o K95 1.1.19 o posterior. Telnet prácticamente ha desaparecido de la faz de la tierra, a pesar de que es muy superior a SSH. Se crearon versiones seguras de Telnet, pero nadie las utiliza y ahora también han desaparecido. "Lo malo expulsa a lo bueno".
Realiza una conexión Telnet automatizada. Igual que "autotelnet" pero no utiliza ninguna de las nuevas características de C-Kermit 7.0. Se requiere C-Kermit 6.0 o K95 1.1.13 o posterior.
- portlog (Detección de intrusos)
Absorbe y registra inofensivamente ataques al puerto TCP 80, como Code Red y Nimda. Se reinicia cada hora, momento en el que también (a) carga el registro de la hora en un sitio FTP seleccionado; (b) envía por correo electrónico un resumen a una dirección seleccionada. Puede escuchar en el puerto TCP 80 o en cualquier otro puerto TCP deseado. Funciona bien en el puerto 80 con Code Red, Code Red II y Nimda. Requiere: C-Kermit 8.0.
- pop3 (*)
Recupera correo electrónico de un servidor POP3. Requiere C-Kermit 7.0. Por Mark Sapiro. Véase también el nuevo script POP3 seguro.
Edita un archivo remoto usando el editor de tu ordenador local. Requiere C-Kermit 7.0 o K95 1.1.19.
- iksget (*)
Obtiene un archivo o archivos de un servidor Kermit de Internet. Requiere C-Kermit 7.0. No se necesitan scripts en C-Kermit 8.0 o K95 2.x, que soportan URLs kermit:// en la línea de comandos (URLs FTP, HTTP y Telnet también).
- iksdpy (*)
El monitor de visualización en tiempo real Internet Kermit Service Daemon. Se requiere C-Kermit 7.0 o K95 2.0 o posterior.
- timestamp (*)
Añade marcas de tiempo a la visualización del registro del sistema basado en Telnet. Se requiere C-Kermit 7.0 o K95 1.1.19. Nota: C-Kermit 8.0 y Kermit 95 2.0 y posteriores tienen una opción integrada para registros de sesión con marca de tiempo.
- linksys (*)
Se utiliza con un enrutador Linksys Ethernet Cable/DSL para recuperar la dirección IP para su uso con la autenticación Kerberos 5 cuando está activada la traducción de direcciones de red (NAT). Se requiere C-Kermit 8.0.
Scripts de registro:
Registra los datos que llegan a un puerto serie. Útil para registrar registros de llamadas de PBX, mensajes en puertos de control de routers, etc. Requiere C-Kermit 8.0.211 o posterior.
Registra los datos entrantes en cualquier tipo de conexión (asume que hay una conexión abierta). Una elaboración del script logport que rota automáticamente el fichero log cada día a medianoche. Debería funcionar con cualquier versión reciente de K95 o C-Kermit.
Scripts de módem:
Este es el script básico de marcación automática e inicio de sesión. Configura el módem y los parámetros de comunicación, marca, opcionalmente negocia a través de un servidor de terminal, y luego inicia sesión en un host Unix. Debería funcionar con cualquier versión de C-Kermit o Kermit 95.
- getline (*)
Dada una lista de dispositivos serie utilizables para marcar, encuentra y asigna el primero libre. Se requiere C-Kermit 7.0 o K95 1.1.19 o posterior.
Dada una lista de servidores TCP/IP modem-pool, reúne un censo de puertos en uso y libres enviándoles comandos "finger" y acumulando los resultados, tanto por servidor como por número de teléfono, así como acumulativos. Se ejecuta en UNIX. Requiere C-Kermit 8.0.
Dada una lista de números de teléfono de un grupo de módems, realiza repetidas llamadas a cada uno de ellos y registra los resultados de cada llamada (BUSY, CONNECT 48000, etc) por fecha y hora en un formato adecuado para el análisis estadístico. Funciona en UNIX, Windows 95/98/ME/NT/2000/XP o VMS. Se requiere C-Kermit 7.0 o K95 1.1.19 o posterior.
- modemtest2 (*)
Dada una lista de números de teléfono de grupos de módems, realiza llamadas repetidas a cada uno de ellos; se conecta a un host especificado, transfiere archivos de un lado a otro y mantiene un archivo de registro de estadísticas de conexión y rendimiento. Funciona en UNIX, Windows 9x/ME/NT/2000/XP o VMS. Se requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior. CLICK AQUÍ para obtener una versión anterior que funciona con C-Kermit 7.0 y K95 1.1.19.
- dialout (*)
Muestra un formulario que el usuario debe rellenar para seleccionar el tipo de módem, el puerto, la velocidad y el número de teléfono, y luego marca cuando el usuario lo ordena. Se requiere C-Kermit 7.0 o K95 1.1.19 o posterior. Nota: Este es también un script de formateo de pantalla.
Un script de marcación que selecciona el proveedor de larga distancia más apropiado según la hora del día, y que también realiza un ciclo a través de los proveedores en caso de señales de ocupado (en caso de que el propio proveedor esté ocupado, en lugar del número de destino). Para uso con SET DIAL MACRO. Por Peter Eichhorn, Assyst GmbH, München. Se requiere C-Kermit 7.0 o K95 1.1.19.
Scripts de buscapersonas:
- numpage (*)
Script para beepers o localizadores numéricos. Se requiere C-Kermit 7.0 o K95 1.1.19 o posterior.
- alphapage (*)
Script de paginación alfanumérica TAP/IXO (ACTUALIZADO en marzo de 2003). Se requiere C-Kermit 8.0 o K95 2.0 o posterior.
Script de paginación alfanumérica TAP/IXO que puede ser utilizado por C-Kermit 6.0 o K95 1.1.13 o posterior.
- malphapage (*)
El script de paginación alfanumérica TAP/IXO modificado por R.M. Almeria para enviar una serie de páginas, en lugar de una sola. Se requiere C-Kermit 8.0 o K95 2.0 o posterior.
Scripts de formateo de pantalla:
- bottom (*)
Un simple script de una línea que utiliza C-Kermit para poner el cursor en la línea inferior de la pantalla. Requiere C-Kermit 7.0 o K95 1.1.19.
- menú (*)
Esqueleto de una aplicación de menú. Requiere C-Kermit 7.0 o K95 1.1.19.
- Véase también el script dialout, que utiliza técnicas de dibujo de pantalla.
Scripts de raspado de pantalla:
En Kermit 95, los scripts pueden interactuar con el emulador de terminal para recuperar cadenas de caracteres de ubicaciones específicas de la pantalla del terminal, de forma similar a HLLAPI. En este script, los formularios de pantalla se analizan para seleccionar y recuperar imágenes de una base de datos del ordenador central. Por Max Evarts. Se requiere K95 1.1.17 o posterior.
Scripts de transferencia de archivos:
Captura un archivo de texto de un host VMS sin protocolo de transferencia de archivos Kermit.
- entregar (*)
Script que entrega el archivo o archivos especificados a su destino, incluso si la conexión se interrumpe en mitad de la transferencia. Se requiere C-Kermit 6.0 o K95 1.1.8 o posterior.
- sincronizar (*)
Script que sincroniza árboles de directorios en dos hosts de Internet a través de una conexión Telnet. Sólo se transfieren los archivos que son más recientes en el origen que en el destino. Los directorios se crean automáticamente según sea necesario en el destino. Los archivos que desaparecen del origen se borran en el destino. Se puede manejar cualquier mezcla de archivos de texto y binarios. No es necesario que los dos hosts tengan el mismo sistema operativo o sistema de archivos. Se contacta con el host de destino y se inicia sesión en él automáticamente (por lo que también se trata de un script de Internet); de este modo, toda la operación puede ejecutarse sin supervisión. Se requiere C-Kermit 7.0 o K95 1.1.19.
Scripts de gestión de archivos:
Concatena todos los archivos del directorio actual en un archivo grande. Resulta útil (por ejemplo) después de descargar un montón de archivos de transacciones EDI que deben combinarse para que el ordenador pueda procesarlos todos a la vez.
- rgrep (*)
Responde a la pregunta más frecuente: "¿Dónde está grep recursivo?" Busca entre los archivos de un árbol de directorios cuyos nombres coincidan con el patrón dado e imprime todas las líneas de todos los archivos que coincidan con el patrón dado. Se requiere C-Kermit 7.0 o K95 1.1.19. Nota: En C-Kermit 8.0, ya no es necesario un script puesto que GREP (incluyendo una opción recursiva) es un comando incorporado.
- renombrar (*)
Análogo de una línea al bucle del shell UNIX "for i in *; do blah; done". Se requiere C-Kermit 7.0 o K95 1.1.19. Esta funcionalidad está integrada en C-Kermit a partir de la versión 8.0.211; PULSE AQUÍ para ver la documentación del comando RENAME.
- tipo de cambio (*)
Elaboración de un script de cambio de nombre a un script de cambio de tipo de archivo de propósito general; los tipos de archivo antiguos y nuevos y la lista de archivos se dan como argumentos de línea de comandos, p. ej., "changetype hlp txt *" cambia el nombre de los archivos *.hlp a *.txt. Se requiere C-Kermit 7.0 o K95 1.1.19. Esta funcionalidad también está integrada en C-Kermit a partir de la versión 8.0.211; PULSE AQUÍ para más detalles.
- borrar (*)
Responde a la pregunta frecuente "¿Cómo borro archivos con más de n días de antigüedad?". Se requiere C-Kermit 7.0 o K95 1.1.19.
- revisar (*)
Revisa archivos de forma interactiva. Todo lo que siempre quisiste en un explorador de archivos en modo texto. Requiere C-Kermit 7.0 o K95 1.1.19.
Rota los registros de conexión mensualmente. Requiere C-Kermit 7.0 o K95 1.1.19.
- cleandups (*)
Una aplicación de gestión de archivos bastante compleja (utilizada, de hecho, para gestionar la actualización e instalación de los binarios de prueba de C-Kermit 7.0 Beta en nuestro servidor ftp). Requiere C-Kermit 7.0.
- instalar (*)
Mueve los nuevos binarios de las pruebas Beta de C-Kermit desde un área de preparación al sitio ftp, borrando los binarios correspondientes de las pruebas Beta anteriores a medida que avanza, para no llenar el disco del servidor ftp. Se requiere C-Kermit 7.0.
- fusionar (*)
Fusiona cualquier número de archivos preclasificados en un único archivo de salida. Ilustra el paquete de entrada/salida de archivos de C-Kermit que funciona con varios archivos a la vez. Requiere C-Kermit 7.0.
- ftplog (*)
Analiza un registro de transferencia de archivos en formato wu-ftpd, que también es creado por el formato FTP SET TRANSACTION-LOG de C-Kermit. Enumera los cinco archivos más populares e imprime también un histograma del recuento de archivos por número de accesos. Ilustra las matrices asociativas. Requiere C-Kermit 7.0.
Scripts de cálculo numérico:
- estadística (*)
Dado un fichero en el que cada línea contiene un par de números, X e Y, calcula e imprime el máximo, el mínimo, la media, la varianza y la desviación estándar de X e Y, y el coeficiente de correlación de X e Y. Los números del fichero pueden (aunque no es necesario) tener decimales y partes fraccionarias. Ilustra las funciones aritméticas de coma flotante introducidas en C-Kermit 7.0.
- xstats (*)
Como las estadísticas, pero implementadas (de forma mucho más sencilla) utilizando expresiones S de C-Kermit 8.0.
Aritmética fecha-hora:
- semana santa (*)
Calcula la fecha de Pascua para cualquier año entre 1900 y 2099 utilizando S-Expressions. Requiere C-Kermit 7.0 o posterior o K95 1.1.20 o posterior.
- pascua2 (*)
Igual que el anterior excepto que éste utiliza una nueva característica de C-Kermit 8.0.212 que fuerza la aritmética de enteros, necesaria en este tipo de cálculos.
- calendario (*)
Como 'cal' de Unix - imprime un calendario para cualquier mes de cualquier año entre 1859 y 9999. Requiere C-Kermit 8.0 o posterior o K95 2.0 o posterior.
Cómo borrar archivos que son más antiguos que una edad dada, en la configuración cliente/servidor.
Archivos de inicialización de C-Kermit:
El archivo de inicialización de C-Kermit estándar. Incluye definiciones para el directorio de servicios con macros de inicio de sesión automático para varias plataformas y métodos de comunicación. Es más una demostración del lenguaje de scripting que de uso práctico.
Ejemplo de archivo de personalización de C-Kermit. Se requiere C-Kermit 6.0 o posterior.
Aumento del protocolo Kermit:
Macro de implementación del (desaparecido) comando REMOTE MESSAGE para C-Kermit 8.0 y Kermit 95 2.0 o posterior.
Mapas clave:
Establece un teclado "por sonido" para las letras cirílicas que se utilizará con el modo de teclado ruso en Kermit 95. Esto permite "escribir al tacto" en cirílico a las personas que tienen teclados QWERTY (las letras cirílicas se emparejan con letras romanas que tienen el "mismo sonido", más o menos). El modo de teclado ruso normal utiliza el diseño de teclado cirílico estándar, que no es familiar para los mecanógrafos QWERTY. Cualquier versión de Kermit 95 anterior a la 1.1.8 puede utilizar este mapa de teclas. Para ver una versión de este archivo de guión que también muestra la versión cirílica de cada carácter, haga clic aquí, pero es posible que tenga que decirle a su navegador que la codificación de texto es utf-8 (a pesar de que se supone que es la codificación predeterminada y preferida para el texto en la Web). Y PULSE AQUÍ para obtener una versión HTML con los caracteres cirílicos correctos que puede imprimir en una página.
Mapa de teclas Kermit 95 necesario para acceder al servicio de reclamaciones de Medicare del estado de Arkansas.
Scripts HTML
Convierte un archivo de texto plano a HTML. Completamente reescrito para su uso en producción en 2017.
Programación orientada a objetos:
(Y otras técnicas creativas de programación.) Esta sección por Dat Thuc Nguyen ([email protected])
Programación basada en reglas en Kermit: Taxonomía Animal. Requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior, además del módulo rule-engine.
Programación basada en reglas en Kermit. Requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior.
Demostración de "rulebase". Requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior.
Programación lógica declarativa tipo Prolog en Kermit. Requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior.
Patrones y predicados. Requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior.
Simulación de una heladería: Llegadas de clientes, pedidos de clientes, salidas de clientes, todo programado como objetos. Requiere la macro de clase definida AQUÍ y C-Kermit 8.0 o Kermit 95 2.0 o posterior.
El Problema de los Filósofos Comensales: semáforo, proceso, temporizador y concurrencia. Requiere la macro de clase definida AQUÍ y C-Kermit 8.0 o Kermit 95 2.0 o posterior.
El Problema de los Filósofos Comedores, ¡con vino!
- permute (*)
Permutación recursiva de cadenas. Se requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior.
Encuentra el camino más corto a través de una red. Ilustra expresiones S y funciones. Se requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior.
Funciones Fibonacci recursivas e iterativas. Ilustra funciones y expresiones S. Se requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior.
¿Cuántas formas hay de cambiar un dólar? Ilustra S-Expressions y funciones. Se requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior.
El problema de las 8 reinas. Ilustra matrices, expresiones S y expresiones booleanas compuestas. Se requiere C-Kermit 8.0 o Kermit 95 2.0 o posterior.
Cálculo del impuesto sobre la renta. Ilustra S-Expressions, aritmética de coma flotante. Se requiere C-Kermit 8.0.
Torres de Hanoi. Ilustra expresiones S, recursividad. Requiere C-Kermit 8.0.
Una versión más rápida de Towers of Hanoi. Ilustra cómo acelerar funciones recursivas. Requiere C-Kermit 8.0.
Realiza programación orientada a objetos en C-Kermit 8.0, utiliza algunas características de S-Expression. Requiere C-Kermit 8.0.
Una aplicación demo que utiliza el mismo ejemplo que la mayoría de dialectos Smalltalk utilizan como introducción a la programación orientada a objetos. Para ejecutar esta demo:
· C-Kermit> take class · C-Kermit> take account
Se requiere C-Kermit 8.0.
Ejecución en cortocircuito de macros en serie (a) mientras todas tienen éxito, (b) hasta que una de ellas tiene éxito. Se requiere C-Kermit 7.0 o K95 1.1.19.
Este pequeño paquete define una serie de operadores aritméticos tipo LISP para C-Kermit y Kermit 95. Se requiere C-Kermit 7.0 o K95 1.1.19 (obsoleto por la sintaxis LISP incorporada de C-Kermit 8.0).
La matriz es un elemento esencial en muchos ámbitos informáticos. C-Kermit y Kermit 95 pueden realizar operaciones matriciales fácilmente. Este script crea dos matrices, A y B, y luego calcula su suma: matriz C.
"SWITCH Considerado Nocivo"
Programación orientada a objetos en C-Kermit y Kermit 95. Diversión con perros y gatos.
Los números complejos no son un tipo incorporado en muchos lenguajes de programación. Aquí la programación orientada a objetos viene al rescate con el tipo definido por el usuario. Este script define una clase de números complejos en C-Kermit, ofreciendo la interfaz familiar de C++. Se requiere C-Kermit 7.0.
El recuento de palabras es el Excel de los lenguajes de scripting como awk y Perl. Con OOP, C-Kermit también maneja la tarea cómodamente. Este script define y utiliza la clase Words para contar las ocurrencias de palabras únicas de un fichero de texto plano. La clase Palabras blinda los detalles de implementación y promueve la reutilización, el buque insignia de la POO. Se requiere C-Kermit 7.0.
Ningún lenguaje de programación orientado a objetos se va de casa sin herencia. Este script muestra la herencia en C-Kermit y Kermit 95.
La herencia múltiple enriquece el diseño de software. No todos los lenguajes de programación orientada a objetos la tienen: C++ la tiene; Java y Smalltalk no. Este script implementa la herencia múltiple en C-Kermit. La famosa clase animal que se encuentra en muchas referencias de C++ y Smalltalk se utiliza para presentar el tema.
El contenedor es un concepto clave en la programación orientada a objetos. Smalltalk, C++, etc. tienen bibliotecas estándar de contenedores. Este script define la clase 'bag' en C-Kermit/Kermit 95. Bag ofrece una rica interfaz de uso.
Una clase string rudimentaria basada en el modelo Smalltalk.
Utilizamos semáforos para coordinar tareas informáticas, compartir recursos, etc. Este script define clases de semáforos en los estilos Smalltalk y C++. Requiere C-Kermit 6.0 / K95 1.1.17.
En la comunidad de patrones, el singleton es una clase que sólo puede tener una instancia. Todos los objetos instanciados a partir de esa clase se refieren al único singleton. El singleton es muy útil cuando sólo hay un recurso disponible y varias funciones definidas por el usuario acceden a ese recurso bajo diferentes referencias. La clase singleton garantiza que sólo se pueda instanciar un objeto a partir de ella, aunque con nombres diferentes.
La máquina de estados finitos es un concepto útil en muchas aplicaciones. Este script sugiere un marco para una máquina de estados.
Pruebas de tortura con lenguaje de script:
- demo (*)
Una "prueba de tortura" interactiva para el lenguaje de scripts de C-Kermit. Se requiere C-Kermit 7.0 o K95 1.1.19.
- iftest (*)
Ejercitador para expresiones booleanas compuestas. Se requiere C-Kermit 7.0 o K95 1.1.19.
- functions (*)
Ejercitador de funciones. Se requiere C-Kermit 7.0 o K95 1.1.19.
- localarray (*)
Ejercitador de matrices locales. Se requiere C-Kermit 7.0 o K95 1.1.19.
- dates (fechas)
Ejercitador para formatos fecha-hora y aritmética. Se requiere C-Kermit 7.0 o posterior. Script actualizado el 26 de abril de 2020.
Ejercitador para expresiones S y aritmética de punto flotante. Se requiere C-Kermit 8.0 o K95 2.0.
Enlaces:
- Biblioteca de scripts Kermit para MS-DOS
- Referencia de portabilidad de scripts de Kermit
- Biblioteca de scripts de Kermit (arriba)
- Página principal de Kermit
- C-Kermit
- Manual de C-Kermit
- Notas de actualización de C-Kermit 7.0
- Notas de actualización de C-Kermit 8.0
- Notas de actualización de C-Kermit 9.0
- C-Kermit 10.0 Notas de actualización
- Kermit 95
- Modo Kermit de EMACS
- Casos prácticos