Учебное пособие и библиотека по написанию сценариев C-Kermit/Kermit 95

Original article: https://kermitproject.org/ckscripts.html

 

Последнее обновление: пятница, 14 июля, 19:40:54, 2023 г.

Учебное пособие по C-Kermit Учебное пособие по Kermit 95 Посмотреть сценарии … Встроенные переменные Встроенные функции

Содержание

  • Введение
  • Загрузчик/установщик скриптов Kermit
  • Учебное пособие по написанию сценариев
  • Недавние дополнения к библиотеке скриптов
  • Файлы инициализации C-Kermit
  • HTML-скрипты
  • FTP-скрипты
  • Интернет-скрипты
  • Скрипты журналирования
  • Скрипты модема
  • Скрипты пейджера
  • Скрипты форматирования экрана
  • Скрипты очистки экрана
  • Скрипты передачи файлов
  • Скрипты управления файлами
  • Скрипты обработки чисел
  • Арифметика даты и времени
  • Объектно-ориентированного программирования
  • Тесты на пытки на скриптовом языке
  • Для MS-DOS Кермит…

ПОСЛЕДНИЕ СЦЕНАРИИ (подробности ниже )

  • Отчеты
    за июль 2023 года. Для пенсионеров, живущих в квартирах: отслеживайте свой доход в сравнении с арендной платой год за годом; посмотреть, какой из них поднимается быстрее. Иллюстрирует, как встроить табличные данные в сам скрипт, а не считывать их из внешнего файла; как разбить строку таблицы на элементы; использование нескольких ассоциативных массивов одновременно; как символически обращаться к элементам ассоциативного массива; и использование S-выражений, когда необходимы результаты с плавающей запятой (в данном случае проценты).
  • ckubuildlog,
    июнь 2023 г. Создает запись для таблицы сборок C-Kermit 10.0 , которая будет использоваться после сборки бета-тестовой версии или, если на то пошло, настоящей версии 10.0, когда она будет готова. ОС семейства Unix пока только.
  • findmissinghtml,
    март 2023 г. Для веб-сайтов: находит недостающие страницы с файлами резервных копий Emacs, поэтому, если вы нигде не можете найти настоящую страницу, по крайней мере, вы можете восстановить ее из последней резервной копии.
  • k95relay,
    апрель 2022 г. Скрипт Kermit 95 для входа на хост, SSH-сервер которого не поддерживает ни один из шифров, которые использует SSH-клиент K95, используя хост или подсистему Linux в качестве ретранслятора. Теперь, когда доступен C-Kermit 10.0 для Windows, он больше не нужен .
  • Fixfilelists,
    май 2021 г. Преобразование страницы архива Kermit для отображения списков файлов после преобразования ссылок из ftp: в http: из-за «устаревания» FTP основными веб-браузерами в марте-апреле 2021 г. По сути, этот сценарий преобразует имена файлов в список каталогов. кликабельны, чтобы вы могли просмотреть или скачать их.
  • Фотогалерея
    2013-2023 (активный проект). Рабочий скрипт для создания, изменения и обновления галерей изображений в Интернете.
  • html
    Май 2017 г. Преобразует текстовые файлы в HTML. Это также первый скрипт Kermit, который можно использовать в конвейерах Unix.
  • Напомнить
    2016. Простая программа напоминаний, которую можно вызвать из вашего профиля входа.
  • Getkermitscript
    2014. Автоматическая загрузка и установка скриптов из библиотеки скриптов Kermit. Обновлено в 2022 году, чтобы «соответствовать» прекращению поддержки протокола FTP для загрузки.
  • replacetextblock
    2014. Автоматический способ замены блока текста (например, многострочного уведомления об авторских правах) во всех файлах, которые его содержат.
  • Jpginfo
    2013. Создает список каталогов файлов изображений JPG, в котором указана дата съемки, ширина, высота, а также книжная или альбомная ориентация.
  • Renamejpgs
    2013. Скрипт для переименования файлов JPG (например, с камер, сканеров или мобильных телефонов) в соответствии с «затраченным временем» или «временем создания». Множество изображений с разных устройств можно переименовать в порядке даты и времени.

ПРЕДИСЛОВИЕ

Пока я пишу это, все меньше и меньше людей знают, что такое Кермит; Если это применимо к вам, вы можете нажать здесь , чтобы просмотреть обзор. Расцвет Кермита пришелся на 1980-е и 90-е годы, когда почти все, кто использовал компьютеры для связи с другими компьютерами, использовали Kermit в качестве эмулятора терминала и для передачи файлов. C-Kermit для Unix и VMS и MS-DOS Kermit для DOS были разработаны совместно. Когда мы начали добавлять возможности автоматизации, язык сценариев стал общим для обеих программ. Когда вышел Kermit 95 для Windows, он имел тот же язык сценариев, поскольку он основан на C-Kermit.

Сначала язык сценариев был ориентирован на задачи связи и передачи файлов, но со временем он превратился в язык программирования общего назначения по шкале где-то между сценариями оболочки и Perl, с кусочками сценариев оболочки Unix, C , Bliss , Lisp . , Snobol , Algol и PL/I , смешанные с циклами, переменными, массивами, функциями, арифметикой, ассоциативными массивами, рекурсией, логической логикой, манипуляцией со строками, вводом-выводом файлов и управлением ими, сопоставлением с образцом, обработкой списков и т. д. .

Сегодня вы можете написать программы-скрипты Kermit, чтобы делать практически все, независимо от того, предполагает ли это обмен данными или нет (а если он и предполагает обмен данными, то это может быть через последовательные соединения, сетевые соединения с открытым текстом или защищенные сетевые соединения). Основными сферами применения Кермита в настоящее время являются администрирование систем и веб-сайтов, а также разработка веб-сайтов. Ниже вы можете увидеть множество примеров производственных сценариев в этих областях.

Говоря за себя, я программирую с середины 1960-х годов, свободно владею многими языками программирования, и мне бы хотелось, чтобы все они, кроме C, не вымерли (PL/I, Snobol и Mainsail очень не хватает; их были мощными, стабильными, последовательными и хорошо документированными). Сегодняшний выбор (C, сценарии оболочки и т. д.) является движущейся целью; программы, написанные на этих языках, не остаются написанными ; они со временем приходят в упадок, поскольку языки и связанные с ними библиотеки и утилиты постоянно переопределяются. Именно поэтому сейчас я пишу все свои программы (кроме самого C-Kermit конечно) на языке Kermit… Потому что сам язык не меняетсяобратно несовместимыми способами, так что «старые» сценарии никогда не нужно «обновлять», они просто продолжают работать, даже когда выпускаются новые версии самого Kermit. А еще потому, что всякий раз, когда в языке возникает ошибка, я могу ее исправить сам, а когда мне нужно сделать что-то, чего нет в языке, я могу добавить это сам. Всегда с обратной совместимостью.

Внятного руководства по языку Kermit пока не существует. Все где-то задокументировано, но разбросано по книгам (которые сейчас есть в сети ) и ряду веб-страниц . В июле 2019 года я собрал подробное руководство со всей информацией. Это похоже на оглавление ; ВОТ ОНО . Между тем, эта страница (та, которую вы читаете) — довольно хорошее место для начала: найдите сценарий, который делает что-то похожее на то, что вы хотите, и используйте его в качестве руководства. А когда вы видите команду или функцию, которую не понимаете, используйте встроенную команду HELP C-Kermit, чтобы узнать об этом:

помощь ?

Показывает темы помощи

команда помощи

Предоставляет информацию о данной команде

помогите установить команду

Предоставляет информацию о данной команде SET.

имя функции справки

Предоставляет информацию о данной встроенной функции.

Также воспользуйтесь диалоговым окном поиска Google на главной странице и опробуйте новое « Оглавление ».

—Франк да Круз, Первомай 2017 г., обновлено 29 августа 2019 г.

ВВЕДЕНИЕ

Язык команд и сценариев C-Kermit и Kermit 95 описан в документе « Использование C-Kermit» , 2-е издание, дополненном дополнениями C-Kermit 7.0 , C-Kermit 8.0 Supplement и C-Kermit 9.0 Supplement . Вы также можете получить обзоры и учебные пособия по Kermit в целом и ЗДЕСЬ по Kermit 95 в частности.

Программное обеспечение Kermit впервые появилось в 1981 году для микрокомпьютеров CP/M и мейнфреймов DECSYSTEM-20 и IBM. А вскоре после этого для IBM (и других) ПК с MS-DOS, а затем для все более и более различных вычислительных платформ , особенно Unix и Microsoft Windows . Командный язык, синтаксис и (в большинстве случаев) редактирование и поддержка команд были адаптированы из TOPS-20 EXEC, то есть пользовательского интерфейса (или «оболочки» в современном языке) DECSYSTEM-20, который был основным платформа академических вычислений в Колумбии с 1977 по 1988 год.. Примечательные функции включают справку по каждому полю при нажатии «?», завершение ключевого слова и имени файла при нажатии клавиши Tab или Esc, а также встроенную справку. Возможности программирования были добавлены к командному языку, начиная с C-Kermit 5A(190) для Unix , VMS, AOS/VS, Plan 9 (и т. д.) и MS-DOS Kermit, и с тех пор были улучшены и расширены. Уникальной особенностью сценариев Kermit является то, что они совместимы не только с различными вычислительными платформами (такими как Unix и Windows), но и с различными методами связи (Telnet, FTP, безопасный Telnet, безопасный FTP, SSH, SSL, Kerberos IV/V и т. д.). более 100 различных типов модемов и прямой последовательный порт).

На этой странице представлено краткое введение в сценарии Kermit, а также библиотека примеров сценариев Kermit, перечисленных ниже . Те, что отмечены (*), являются сценариями «kerbang», которые в UNIX можно использовать точно так же, как сценарии оболочки, если вы дадите им разрешение на выполнение:

chmod +x имя сценария

Аргументы командной строки принимаются ожидаемым образом, например:

autotelnet xyz.com myuserid

Это делает аргументы командной строки доступными сценарию в переменных \%0 (название сценария), \%1 (первый аргумент), \%2 (второй аргумент) и т. д.

Первая строка каждого сценария kerbang выглядит так:

#!/usr/local/bin/wermit +

(но без отступа). Это указывает путь к исполняемому файлу C-Kermit, который должен выполнить сценарий; измените эту строку по мере необходимости. Завершающий знак плюса необходим, если в сценарий должны быть переданы аргументы командной строки (и не повредит, если это не так). Для функции «kerbang» требуется C-Kermit 7.0 или новее. Дополнительные сведения о сценариях kerbang см. в разделе «Дополнение к C-Kermit 7.0» по этой теме.

ВНИМАНИЕ: В операционных системах на базе Unix файл сценария должен быть в текстовом формате Unix.чтобы механизм Kerbang работал. То есть строки должны завершаться и разделяться только переводом строки, а не возвратом каретки и переводом строки (как это произошло бы, например, если бы вы загрузили файл из Windows в двоичном, а не текстовом режиме). Если строка Kerbang заканчивается на CR и LF, оболочка Unix будет считать, что CR является частью имени файла, если не указан «+», и не сможет найти «действительный интерпретатор» (т. е. Kermit) для сценария. Если включен знак +, CR может помешать Kermit распознать его. Это характеристики оболочки Unix, и они применимы к сценариям оболочки, сценариям Perl и любому другому типу сценариев, которые используют соглашение «shebang» для вызова соответствующего интерпретатора. Чтобы удалить возврат каретки, используйте следующие команды оболочки Unix:

tr -d ‘\015’ <имя файла сценария > новое имя файла

mv новое имя файла имя файла сценария

На платформах, отличных от UNIX, эти сценарии выполняются:

  1. Передача команды TAKE имени файла Кермиту. В C-Kermit 7.0 и более поздних версиях за именем файла могут следовать аргументы, которые присваиваются переменным. \%1 , \%2 , …, \%9 .

Включение имени файла сценария в качестве первого аргумента командной строки программы Kermit, за которым следует знак плюса и аргументы. В VMS и Windows знак плюса, похоже, вызывает проблемы с оболочкой, поэтому в этом случае вы можете заменить знак равенства, но поместить его после имени файла сценария, а не перед ним:
kermit script.ksc = arg1 arg2 arg3 … VMS

k95 script.ksc = arg1 arg2 arg3 … Windows

  1. Это присваивает arg1 \%1 , arg2 до \%2 , и так далее.
  2. В Windows 95/98/ME/NT/2000/XP/и т. д. по ассоциации типа файла (когда имя файла сценария имеет суффикс » .ksc «), но в этом случае Windows не предоставляет механизма передачи аргументов сценарию.

Вне UNIX строка «kerbang» не имеет никакого эффекта, поскольку является комментарием к Кермиту. В VMS любые ссылки на «переменные среды» могут быть удовлетворены логическими именами или символами DCL.

Сценарии на этой странице предназначены только для иллюстративных целей и не несут никаких гарантий, явных или подразумеваемых.

Вершина

СКРИПТ ДЛЯ ЗАГРУЗКИ СКРИПТОВ

По состоянию на январь 2014 г. доступен новый скрипт, упрощающий загрузку скриптов из библиотеки скриптов Kermit и их установку на ваш компьютер. Он называется getkermitscript . НАЖМИТЕ ЗДЕСЬ , чтобы увидеть его (и загрузить). Вы можете использовать этот сценарий на компьютере под управлением Unix, на котором установлен C-Kermit 8.0 или более поздней версии, чтобы загрузить и установить сценарии Kermit отсюда с помощью одной простой команды, например «getkermitscript photogallery.ksc». Некоторые вещи, которые следует иметь в виду:

  • Все имена файлов сценариев в библиотеке Kermit написаны строчными буквами. Сценарий getkermitscript знает об этом и записывает все аргументы, которые вы могли использовать с заглавной буквы, в нижний регистр.
  • Скрипты в библиотеке скриптов хранятся без какого-либо расширения, даже если вы можете увидеть, что они называются именем. .ksc .

НАЖМИТЕ ЗДЕСЬ, чтобы получить полные инструкции.

Вершина

Урок по написанию сценариев

  • Для ознакомления с C -Kermit НАЖМИТЕ ЗДЕСЬ .
  • Для ознакомления с Kermit 95 НАЖМИТЕ ЗДЕСЬ .

Язык сценариев Kermit — это язык программирования, похожий на Perl, но с другим синтаксисом (поскольку язык Kermit предшествует Perl и многим другим языкам сценариев). Язык Kermit переносим в UNIX (Linux, AIX, HP-UX, Solaris, FreeBSD, IRIX, SINIX, QNX, SCO, Tru64 и все другие известные варианты 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 и других платформах и одинаково работает на последовательных соединениях (прямых или коммутируемых) и сетевые соединения (открытый текст или защищенный). Таким образом, изучение языка — это хорошая инвестиция вашего времени, поскольку его можно применить практически к любой проблеме общения. Язык сценариев Kermit описан в книге.Использование C-Kermit , но, конечно, с момента публикации книги было сделано много улучшений, которые объясняются в обновлениях для Версии 7.0 , Версии 8.0 и Версии 9.0 и иллюстрируются примерами сценариев, перечисленных ниже.

Язык сценариев Kermit легко освоить , если вы уже используете Kermit, поскольку он аналогичен командному языку Kermit . Программа-скрипт Kermit — это просто серия команд Kermit, собранных в файл или макрос. Чтобы выполнить сценарий, вы говорите Кермиту ВЗЯТЬ файл или ВЫПОЛНИТЬ макрос. Или в UNIX вы также можете выполнить его, как если бы это был сценарий оболочки, как описано вверху этой страницы . В любом случае вы можете передать параметры сценарию в команде, которая его вызывает.

При использовании Kermit «вручную» , то есть при непосредственном взаимодействии с хостом, вы обычно устанавливаете соединение (SSH, TELNET, DIAL и т. д.), а затем напрямую взаимодействуете с другим компьютером, переключаясь между экраном команд Kermit и терминалом. экран. Команда для переключения с экрана команд на экран терминала — CONNECT (C — достаточное сокращение). Для возврата с экрана терминала на экран команд требуется специальная «Escape-последовательность», например Ctrl- \ С, Ctrl -] C или Alt-x (Alt-x используется в Kermit 95 и MS-DOS Kermit). Обратите внимание, что команда TELNET Кермита представляет собой сокращение для SET HOST, за которым следует CONNECT; то есть TELNET включает подразумеваемую команду CONNECT.

При автоматизации сеанса вы не переключаетесь между «экранами»; вы не ПОДКЛЮЧАЕТЕСЬ и не убегаете обратно. В скрипте все делается в командном режиме. В скрипте нет экрана терминала. Вместо CONNECT (или TELNET, или RLOGIN, или SSH) используйте следующие команды , которые сообщают Кермиту сделать то, что вы бы сделали «вручную»:

SET HOST [переключатели] имя-или адрес хоста [переключатели]

Откройте сетевое соединение, но оставайтесь в командном режиме, т. е. не входя в экран терминала или режим ПОДКЛЮЧЕНИЯ. Используйте это вместо TELNET, CONNECT, SSH или другой команды, которая выводит на экран терминала. Синоним: OPEN HOST (который может больше напоминать о выполняемом действии).

Для последовательных или модемных подключений используйте:

УСТАНОВИТЬ ТИП МОДЕМА [имя модема или NONE ]

SET LINE имя устройства

SET SPEED скорость интерфейса

[ НАБОР номера телефона ]

Откройте прямое или последовательное соединение, но оставайтесь в командном режиме. Обратите внимание, что когда команда DIAL выполняется из командного файла или макроса, она не переходит в режим CONNECT автоматически.

Команда Kermit DIAL осуществляет вызов, отправляя модему соответствующие команды, обычно AT-команды, и считывая ответы. Команда SET MODEM TYPE, которую необходимо ввести перед командой DIAL, сообщает Kermit, какой тип модема используется, чтобы он знал, какой конкретный набор команд использовать. В C-Kermit и Kermit 95 обычно нет необходимости писать сценарий диалога с модемом; все это уже встроено в Кермит. Для получения дополнительной информации см. руководство или введите HELP DIAL, HELP SET DIAL и HELP SET MODEM.

Однако если вам необходимо создать сценарий такого диалога – например, для отправки буквенно-цифровых страниц или SMS-сообщений – вы можете это сделать. Хитрость заключается в том, что перед выполнением первой команды INPUT или OUTPUT (поясняется ниже) вы должны указать Кермиту ВЫКЛЮЧИТЬ CARRIER-WATCH. Пример:

УСТАНОВИТЬ ТИП МОДЕМА НЕТ

ЗАДАТЬ СТРОКУ /dev/ttyS0

ЕСЛИ НЕУДАЧА ВЫХОД 1 «Устройство недоступно»

ЗАДАННАЯ СКОРОСТЬ 57600

НАСТРОЙКА УПРАВЛЕНИЯ ПОТОКОМ RTS/CTS

ВЫКЛЮЧИТЬ CARRIER-WATCH

ВЫХОД НА\13

ВХОД 3 ОК

Введите HELP SET CARRIER-WATCH для получения краткого объяснения.

Как только соединение будет открыто, используйте следующие команды для имитации того, что вы будете делать в интерактивном режиме:

Строка тайм-аута INPUT

Подождите, пока заданная строка не прибудет с другого компьютера в течение таймаута . Если она прибудет, эта команда будет успешной; в противном случае команда не будет выполнена. Пример: ВХОД 10 логин: Команда INPUT может принимать не только простые строки, но и шаблоны . Альтернативная форма, MINPUT, принимает список строк соответствия и/или шаблонов.

ВКЛЮЧИТЬ ВХОДНОЕ ЭХО

Обычно вы не видите диалоговые окна со сценариями на своем экране. Используйте эту команду, чтобы увидеть, что Кермит и ведущий говорят друг другу. На работу скрипта это не влияет, только на то, что вы видите.

ЕСЛИ ОТКАЗ, команда

Если предыдущая команда (SET HOST, INPUT или любая другая команда) не удалась, выполните данную команду .

Пример: ЕСЛИ НЕУДАЧНО ВЫХОД 1 «Нет запроса на вход в систему» . Команда может представлять собой список команд, заключенный в фигурные скобки, а оператор IF также может иметь часть ELSE, которая также может представлять собой одну команду или список команд .

ЕСЛИ УСПЕХ команда

Если предыдущая команда завершилась успешно, выполните данную команду .

СТОП [число [строка]]

Остановите сценарий и вернитесь к приглашению Kermit. Это число представляет собой код успеха: 0 — успех, ненулевое — неудача; команда, которая вызвала текущий командный файл (TAKE) или макрос (DO или «подразумеваемый DO»), может быть проверена с помощью IF SUCCESS или IF FAILURE на основе этого кода. Если строка включена, она печатается.

КОНЕЦ [число [строка]]

Подобно STOP, но выталкивает стек команд только на один уровень, а не до самого верха. Используйте это для раннего возврата из макроса или командного файла к вызывающему объекту. Синоним: ПОП.

ВЫХОД [число [строка]]

Останавливает сценарий и выходит из Кермита. Это число представляет собой код статуса выхода Кермита, обычно 0 в случае успеха и ненулевое значение в случае неудачи. Если сообщение задано, оно печатается.

ВЫХОДНАЯ строка

Отправьте данную строку на другой компьютер. Управляющие символы могут быть включены в строку с помощью \ дддобозначение (где d — цифры, а ddd — цифровой код управляющего символа .

Пример: ВЫХОД ольга\13

строка LINEOUT

(C-Kermit 7.0 и более поздние версии; Kermit 95 1.1.20 и более поздние версии). Поскольку очень часто выводится строка с возвратом каретки в конце, эта команда сделает это за вас, поэтому вам не нужно помнить о включении \13 в конце. коридор фу эквивалентно выход фу\13 .

ВВОД занимает место ваших глаз , ВЫХОД — место ваших пальцев , а ЕСЛИ — место вашего мозга .

Остальное — обычное программирование: FOR, WHILE, SWITCH, GOTO, переменные, массивы, функции, блочная структура, вложенность, область видимости и все остальное, перечисленное ЗДЕСЬ и документированное в руководстве (так же, как любой другой язык программирования документируется в своем собственном языке ) . руководство).

Вот очень простой пример подключения Telnet к UNIX и входа в систему:

установить хост foo.bar.baz.com ; Установить связь

в случае сбоя стоп 1 Соединение не удалось; Проверьте, что это было сделано

введите 20 логин: ; Подождите 20 секунд для входа в систему: подсказка

в случае неудачи стоп 1 Нет запроса на вход в систему; Проверьте, что оно пришло

вывести myuserid\13 ; или «lineout myuserid»

введите 5 Пароль: ; Подождите 5 секунд, пока появится запрос пароля:

в случае неудачи стоп 1 Нет запроса на ввод пароля; Проверьте, что оно пришло

вывести мойпароль\13 ; или «lineout mypassword»

Это иллюстрирует, как ваши действия на экране терминала моделируются ВХОДОМ (глаза), ВЫХОДОМ (пальцы) и ЕСЛИ (мозг). Его можно доработать до любой степени: использовать переменные вместо констант для хоста, имени пользователя или пароля; запросить пароль, чтобы вам не приходилось хранить его в файле; попытаться выполнить какое-то действие по восстановлению в случае сбоя команды вместо того, чтобы просто остановить ее, и так далее. И, конечно же, вы можете добавить больше шагов — передать файл, отправить электронное письмо, что угодно.

Синтаксис языка программирования Kermit должен быть знаком всем, кто использует другие языки сценариев, например оболочку UNIX. Это язык подстановки строк , поэтому для обозначения подстановки строк используется «Escape-символ» (обратная косая черта). Поскольку можно заменять многие типы элементов, за обратной косой чертой следует второй символ, указывающий, какой тип замены следует сделать: скалярная переменная, элемент массива, результат функции, специальный символ и т. д. Примеры:

\%а Скалярная пользовательская переменная, вычисляемая рекурсивно.
\м( имя ) Скалярная пользовательская переменная, оцениваемая на один уровень глубины.
\v( имя ) Встроенная переменная (например, \v(время) , «показать переменную» для списка)
\&а[1] Элемент массива, вычисляемый рекурсивно
\f имя ( аргументы ) Вызов функции («показать func» для списка, «help func xxx» для получения подробной информации о функции xxx)
\x0F Символ, код которого представляет собой заданное шестнадцатеричное число ( 00-ff )
\123 Символ, код которого представляет собой заданное десятичное число (0–255).
\\ Буквальная обратная косая черта.
( НАЖМИТЕ ЗДЕСЬ , чтобы получить более подробное объяснение этого обозначения.)

Это должно дать вам представление о том, как читать сценарии в библиотеке и как написать простой сценарий или адаптировать один из них к вашим потребностям. Для краткого описания конкретной команды или функции Kermit используйте команду Kermit HELP. Для описания встроенной функции введите в командной строке «help function xxx», где xxx — имя функции. Для тщательного лечения обратитесь к руководству .

Наконец, помните:

  • Не добавляйте команду CONNECT в сценарий, если вы действительно не хотите приостановить выполнение сценария и передать пользователю ручное управление. И помните, что команда CONNECT может работать только в том случае, если задание имеет управляющий терминал; он не может работать в пакетном режиме или задании cron без терминала.
  • Вы не можете разместить текст для хоста «в строке». Кермит читает команды из скрипта, а не текст для хоста. Чтобы отправить текст на хост, используйте команду OUTPUT или TRANSMIT.
  • Хост TELNET — это ярлык для хоста SET HOST , ЕСЛИ УСПЕШНО ПОДКЛЮЧИТЬСЯ. Поскольку TELNET включает подразумеваемую команду CONNECT, не добавляйте команду TELNET в свой сценарий, если только вы действительно не хотите приостановить выполнение сценария и передать пользователю ручное управление. Аналогично для SSH и RLOGIN. Вместо этого в сценарии используйте SET HOST с соответствующими переключателями (при необходимости) для указания типа соединения. ПОМОГИТЕ НАСТРОИТЬ ХОСТ для получения подробной информации.
  • Дополнительные примеры можно найти в библиотеке ниже, а также посмотреть тематические исследования C-Kermit . Также см. FAQ по C-Kermit « Почему мой скрипт не работает? ».

Верхнее содержание C-Кермит Кермит 95 Кермит Главная

БИБЛИОТЕКА СЦЕНАРИЙ КЕРМИТА

Недавние дополнения

  • Фотогалерея
    август 2013 г., с последующими обновлениями. Рабочий скрипт для создания, изменения и обновления галерей изображений для Интернета. Требуется C-Kermit 9.0 или более поздняя версия. Он заменяет предыдущий сценарий фотоальбома , который представлял собой всего лишь демо-версию, не подходящую для производства.
  • html
    Программа, преобразующая обычный текстовый файл в веб-страницу. В отличие от всех других представленных здесь сценариев, этот можно использовать в конвейере Unix.
  • Напоминание
    Простая программа напоминаний, которую можно вызвать из вашего профиля входа в систему, напрямую или любым другим способом. Иллюстрирует некоторые функции обработки дат C-Kermit (преобразование формата, сравнение, сортировка). Текст справки ЗДЕСЬ .
  • replacetextblock
    февраль 2014 г. Автоматизированный способ замены блока текста (например, многострочного уведомления об авторских правах) во всех файлах, которые его содержат. C-Кермит 9.0 или новее.
  • Getkermitscript,
    январь 2014 г. Сценарий Kermit для загрузки сценариев Kermit из библиотеки сценариев Kermit и установки их на свой компьютер без необходимости редактировать их или давать какие-либо другие команды (ранее всегда приходилось редактировать «строку kerbang» и изменять разрешения). ). Юникс только пока. Требуется C-Kermit 8.0 или новее. Обновлено в 2022 году для устранения исчезновения протокола FTP из Интернета.
  • Jpginfo,
    сентябрь 2013 г. Создает список каталогов файлов изображений JPG, который включает (для каждого файла) дату создания, ширину, высоту и тип изображения: книжную или альбомную.
  • Renamejpgs
    Апрель 2013 г. Скрипт для переименования файлов JPG в зависимости от «затраченного времени» или «времени создания». Это позволяет изображениям из нескольких источников или изображениям с «перевернутыми» именами отображаться в хронологическом порядке по имени файла. Требуется C-Кермит 9.0.304 .
  • ilosetup
    2009-2011. Рабочий сценарий для настройки блейд-серверов HP через интерфейс Integrated Lights Out (iLO).
  • CBX
    Набор скриптов для получения отчетов из Rolm CBX. C-Kermit 8.0 или новее или Kermit 95 2.1 или новее.
  • Ksitemap
    Kermit создает карту сайта для веб-сайта на основе созданного вами простого управляющего файла, в котором указывается, какие файлы и изображения вы хотите включить. Поддерживаются расширения Google Image Sitemap. Если ваш управляющий файл содержит текст, закодированный в ISO 8859-1 или других часто используемых наборах символов, Kermit преобразует его в UTF-8, который требуется в файлах Sitemap. Документировано ЗДЕСЬ . Требуется C-Кермит 9.0 .
  • Блог
    Считывает веб-журнал с разделением табуляцией (TSV) для двуязычного испанско-английского веб-сайта, извлекает поисковые запросы Google, нормализует набор символов и заглавные буквы поисковых строк, насколько это возможно, и печатает 20 самых популярных поисковых запросов вместе с их количеством. . Документировано ЗДЕСЬ . Требуется C-Кермит 9.0 . [По состоянию на октябрь 2011 года этот сценарий является в основном академическим, поскольку Google больше не включает текст поиска в параметры URL.]
  • ifdef
    Простой сценарий для проверки структуры #if/#ifdef/#ifndef..#endif в файле исходного кода C.
  • ifdef2
    Подобен ifdef, но также отображает #define и #undef.
  • cmp
    Макрос для сравнения двух чисел любой длины, целого числа или числа с плавающей запятой, со знаком или без знака, даже если они длиннее, чем размер слова базовой машины. Требуется C-Kermit 8.0 или новее или K95 2.0 или новее.
  • twoscomplementv3
    Макросы для преобразования строк десятичных чисел со знаком в формат шестнадцатеричного дополнения до двух и наоборот. Выполняет собственную арифметику строк, поэтому не ограничивается размером машинного слова или моделью памяти. Как написано, может обрабатывать целые числа длиной до 128 бит. Очевидно, что этот работает медленнее, чем twoscomplementv1 , который использует машинную арифметику. Требуется C-Kermit 8.0 или новее или K95 2.0 или новее. ( Скрипт twoscomplementv2 преобразуется только в одном направлении, эта версия включает оба направления.)
  • twoscomplementv1
    Сценарий для преобразования строк десятичных чисел со знаком в формат дополнения до двух и отображения их в шестнадцатеричном формате. Использует машинную арифметику, поэтому результаты ограничены базовым размером слова и моделью памяти (например, 32 бита). Требуется C-Kermit 8.0 или новее или K95 2.0 или новее.
  • CGI-скрипт опроса
    для обработки веб-формы (в данном случае опроса ).
  • webindex
    Создает веб-индекс на основе FTP-сайта Kermit, тысячи файлов превращаются в интерактивные ссылки. Требуется C-Kermit 9.0 или новее.
  • pop.ksc Полностью разработанный производственный сценарий для получения почты с сервера POP3 через соединение, защищенное SSL. Для получения пояснений и документации НАЖМИТЕ ЗДЕСЬ . Требуется C-Kermit 9.0 или новее. Я сам использовал этот (и следующий сценарий, mailcheck) для получения электронной почты каждый день, пока Columbia не перешла с традиционной почты Unix на Gmail.
  • mailcheck Обертка для сценария pop.ksc , который собирает ваш пароль один раз, а затем проверяет наличие новой почты каждые 5 минут (или другой выбранный интервал) и извлекает ее, если таковая имеется.

FTP-скрипты:

С 2022 года в большинстве случаев они больше не нужны, поскольку протокол FTP и серверы были удалены из Интернета.

  • Введение в создание сценариев FTP.
    Как автоматизировать сеансы FTP с помощью C-Kermit 8.0 и Kermit 95 2.0 или более поздней версии. Сам FTP вышел из моды, и это досадно, но в некоторых местах все еще есть FTP-серверы, к которым вы можете получить доступ из FTP-клиента текстового режима (но не из веб-браузера, такого как Chrome или Firefox).
  • ibm_infoexchange
    Устанавливает безопасное FTP-соединение с IBM InfoExchange. Требуетсябезопасная версия Kermit 95 2.0 (или новее) или C-Kermit 8.0 (или новее).
  • ftprename
    Multiple Rename: показывает, как переименовать список файлов на FTP-сервере. Требуется Kermit 95 2.0 (или более поздняя версия) или C-Kermit 8.0 (или более поздняя версия).
  • ftpdirectory(*)
    Как получить список каталогов с FTP-сервера, который показывает полную метку времени для каждого файла. Требуется Kermit 95 2.0 или C-Kermit 8.0 (или более поздняя версия).
  • usend
    Показывает, как отправить файл на FTP-сервер с гарантированно уникальным именем, даже если сервер не поддерживает STOU. Требуется Kermit 95 2.0 (или более поздняя версия) или C-Kermit 8.0 (или более поздняя версия).
  • rawhide
    Ежедневная загрузка новых RPM с сервера Red Hat Linux Rawhide. Kermit 95 2.0 (или новее) или C-Kermit 8.0 (или новее).
  • ftpsyncdown
    Использует FTP для синхронизации локального каталога с каталогом удаленного сервера. Загружает новые файлы и файлы, которые изменились, пропускает файлы, которые не изменились, удаляет локальные файлы, не имеющие аналогов на сервере. Работает на разных платформах (клиент Windows или Unix; Unix, VMS, Windows или любой другой сервер); переключение текстово-двоичного режима осуществляется автоматически. Kermit 95 2.0 (или новее) или C-Kermit 8.0 (или новее).
  • ftpsyncup
    Использует FTP для синхронизации дерева каталогов удаленного сервера с деревом локальных каталогов. Дерево локальных каталогов дублируется на сервере. Загружает новые файлы и файлы, которые были изменены, пропускает файлы, которые не изменились. Работает на разных платформах благодаря автоматическому переключению текстово-двоичного режима. Kermit 95 2.0 (или новее) или C-Kermit 8.0 (или новее).

Другие интернет-скрипты:

  • kwhois
    Простой одноэтапный WHOIS, внешний интерфейс обычной утилиты whois для поиска любого домена за один шаг, а не за два.
  • удаленный доступ
    Как предоставить командно-ориентированный интерфейс пользователям, обращающимся к Kermit напрямую извне: коммутируемый доступ (ANSWER), Интернет (SET HOST *) или даже когда Kermit работает как служба под inetd. В таких ситуациях драйвер терминала отсутствует, поэтому Kermit должен сам обрабатывать эхо и редактирование, а также анализировать команды и выполнять их. В этом примере реализована простая «BBS», где пользователь может получать списки файлов и загружать файлы. Работает с любой последней версией C-Kermit или Kermit 95.
  • skermit(*)
    Клиент для подсистемы SSH передачи файлов и управления ими C-Kermit: более мощная, более дружественная и поддерживающая сценарии альтернатива SFTP. НАЖМИТЕ ЗДЕСЬ для просмотра документации. Требуется C-Kermit 8.0.201 или K95 2.0 (или более поздняя версия).
  • autossh(*)
    Проводит автоматический сеанс SSH. Требуется C-Kermit 8.0 или K95 2.0 или более поздняя версия.
  • autotelnet(*)
    Устанавливает автоматическое соединение Telnet. Требуется C-Kermit 7.0 или K95 1.1.19 или новее. Telnet практически исчез с лица земли, хотя он намного превосходит SSH. Были созданы безопасные версии Telnet, но ими никто не пользуется, а теперь и они исчезли. «Плохое вытесняет хорошее».
  • autotelnet6(*)
    Устанавливает автоматическое соединение Telnet. То же, что и «autotelnet», но не использует никаких новых функций C-Kermit 7.0. Требуется C-Kermit 6.0 или K95 1.1.13 или более поздняя версия.
  • portlog(обнаружение вторжений)
    Безвредно поглощает и регистрирует атаки на TCP-порт 80, такие как Code Red и Nimda. Сбрасывается каждый час, при этом он также (а) загружает часовой журнал на выбранный FTP-сайт; (б) отправляет резюме по выбранному адресу. Он может прослушивать TCP-порт 80 или любой другой желаемый TCP-порт. Прекрасно работает на порту 80 с Code Red, Code Red II и Nimda. Требуется: C-Кермит 8.0 .
  • pop3(*)
    Получает электронную почту с POP3-сервера. Требуется C-Кермит 7.0 . Марк Сапиро. Также ознакомьтесь с новым безопасным сценарием POP3 .
  • netedit
    Редактирует удаленный файл с помощью редактора вашего локального компьютера. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • iksget(*)
    Получает файл или файлы с интернет-сервера Kermit. Требуется C-Кермит 7.0 . В C-Kermit 8.0 или K95 2.x, которые поддерживают Кермит:// URL-адреса в командной строке (также URL-адреса FTP, HTTP и Telnet).
  • iksdpy(*)
    Монитор отображения в реальном времени Internet Kermit Service Daemon. Требуется C-Kermit 7.0 или K95 2.0 или более поздняя версия.
  • timestamp(*)
    Добавляет временные метки к отображению системного журнала на основе Telnet. Требуется C-Kermit 7.0 или K95 1.1.19 . Примечание. C-Kermit 8.0 и Kermit 95 2.0 и более поздние версии имеют встроенную опцию для журналов сеансов с отметкой времени .
  • linkys(*)
    Используется с Ethernet-кабелем/DSL-маршрутизатором Linksys для получения IP-адреса для использования с аутентификацией Kerberos 5, когда включена трансляция сетевых адресов (NAT). Требуется C-Кермит 8.0 .

Скрипты логирования:

  • logport
    Регистрирует данные, поступающие в последовательный порт. Удобно для регистрации записей вызовов АТС, сообщений на управляющих портах маршрутизаторов и т. д. Требуется C-Kermit 8.0.211 или новее.
  • daily-session-log
    Регистрирует входящие данные при любом типе соединения (при условии, что соединение открыто). Разработка сценария logport, который автоматически меняет файл журнала каждый день в полночь. Должно работать с любой последней версией K95 или C-Kermit.

Скрипты модема:

  • autodial
    Это базовый сценарий автоматического набора номера и входа в систему. Настраивает параметры модема и связи, осуществляет набор номера, при необходимости осуществляет согласование через терминальный сервер, а затем регистрируется на хосте Unix. Должен работать с любой версией C-Kermit или Kermit 95.
  • getline(*)
    Учитывая список последовательных устройств, используемых для дозвона, находит и назначает первое свободное устройство. Требуется C-Kermit 7.0 или K95 1.1.19 или новее.
  • mpservers
    Имея список серверов модемного пула TCP/IP, собирает список используемых и свободных портов, отправляя им «пальцевые» команды и накапливая результаты как для каждого сервера, так и для каждого номера телефона, а также накопительный. Работает в UNIX. Требуется C-Кермит 8.0 .
  • callstats
    Предоставляет список телефонных номеров модемного пула, осуществляет повторные звонки каждому из них и записывает результаты каждого звонка (ЗАНЯТО, ПОДКЛЮЧИТЬ 48000 и т. д.) по дате и времени в формате, подходящем для статистического анализа. Работает в UNIX, Windows 95/98/ME/NT/2000/XP или VMS. Требуется C-Kermit 7.0 или K95 1.1.19 или новее.
  • modemtest2(*)
    Учитывая список телефонных номеров модемного пула, совершает повторные звонки каждому из них; регистрируется на указанном хосте, передает файлы туда и обратно и ведет файл журнала со статистикой подключения и производительности. Работает в UNIX, Windows 9x/ME/NT/2000/XP или VMS. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия. НАЖМИТЕ ЗДЕСЬ , чтобы просмотреть более раннюю версию, работающую с C-Kermit 7.0 и K95 1.1.19.
  • Diaout(*)
    Отображает форму, которую пользователь должен заполнить, чтобы выбрать тип модема, порт, скорость и номер телефона, а затем набирает номер по команде пользователя. Требуется C-Kermit 7.0 или K95 1.1.19 или новее. Примечание. Это также сценарий форматирования экрана .
  • callbycall
    Сценарий набора номера, который выбирает наиболее подходящего оператора междугородной связи по времени суток, а также циклически переключается между поставщиками при сигнале занятости (в случае, если занят сам поставщик услуг, а не номер пункта назначения). Для использования с SET DIAL MACRO. Питер Айххорн, Assyst GmbH , Мюнхен. Требуется C-Kermit 7.0 или K95 1.1.19 .

Скрипты пейджера:

  • numpage(*)
    Скрипт для пейджеров или цифровых пейджеров. Требуется C-Kermit 7.0 или K95 1.1.19 или новее.
  • Alphapage(*)
    Буквенно-цифровой сценарий пейджинга TAP/IXO (ОБНОВЛЕНО в марте 2003 г.). Требуется C-Kermit 8.0 или K95 2.0 или более поздняя версия.
  • Alphapage6
    Буквенно-цифровой сценарий пейджинга TAP/IXO, который может использоваться C-Kermit 6.0 или K95 1.1.13 или более поздней версии.
  • malphapage(*)
    Буквенно-цифровой пейджинговый скрипт TAP/IXO, модифицированный RM Almeria для отправки серии страниц, а не одной. Требуется C-Kermit 8.0 или K95 2.0 или более поздняя версия.
  • Подробнее о пейджерах

Скрипты форматирования экрана:

  • дно(*)
    Простой однострочный скрипт, использующий C-Kermit для помещения курсора в нижнюю строку экрана. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • меню(*)
    Скелет приложения меню. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • Также см. сценарий дозвона , в котором используются методы рисования экрана.

Скрипты очистки экрана:

  • Scrape
    В Kermit 95 сценарии могут взаимодействовать с эмулятором терминала для извлечения строк из определенных мест на экране терминала, аналогично HLLAPI. В этом сценарии экранные формы анализируются для выбора и извлечения изображений из базы данных на главном компьютере. Макс Эвартс. Требуется K95 1.1.17 или новее.

Скрипты передачи файлов:

  • vmscapture
    Захват текстового файла с хоста VMS без протокола передачи файлов Kermit.
  • доставить(*)
    Сценарий, который доставляет указанный файл или файлы по назначению, даже если соединение разрывается во время передачи. Требуется C-Kermit 6.0 или K95 1.1.8 или новее.
  • sync(*)
    Скрипт, который синхронизирует деревья каталогов на двух хостах Интернета через соединение Telnet. Передаются только те файлы, которые в источнике новее, чем в месте назначения. Каталоги создаются автоматически по мере необходимости в пункте назначения. Файлы, исчезнувшие из источника, удаляются в месте назначения. Можно обрабатывать любую смесь текстовых и двоичных файлов. Два хоста не обязательно должны иметь одну и ту же операционную систему или файловую систему. С хостом назначения происходит соединение и вход в систему автоматически (так что это тоже Интернет-скрипт ); таким образом, вся операция может выполняться без присмотра. Требуется C-Kermit 7.0 или K95 1.1.19 .

Скрипты управления файлами:

  • concatenate
    Объединяет все файлы в текущем каталоге в один большой файл. Полезно (например) после загрузки нескольких файлов транзакций EDI, которые необходимо объединить, чтобы компьютер мог обработать их все одновременно.
  • rgrep(*)
    Отвечает на часто задаваемый вопрос: «Где рекурсивный grep?» Ищет в дереве каталогов файлы, имена которых соответствуют заданному шаблону, и печатает все строки во всех файлах, соответствующих заданному шаблону. Требуется C-Kermit 7.0 или K95 1.1.19 . Примечание. В C-Kermit 8.0 сценарий больше не требуется, поскольку GREP (включая рекурсивный вариант) является встроенной командой.
  • rename(*)
    Однострочный аналог оболочки UNIX » для я в *; делать бла ; сделанный » цикл. Требуется C-Kermit 7.0 или K95 1.1.19 . Эта функциональность встроена в C-Kermit начиная с версии 8.0.211; НАЖМИТЕ ЗДЕСЬ, чтобы просмотреть документацию по расширенной команде RENAME.
  • changetype(*)
    Разработка скрипта переименования в универсальный скрипт изменения типа файла; старые и новые типы файлов и список файлов передаются в качестве аргументов командной строки, например « тип изменения помощь текст * » переименовывает *.hlp файлы в *.текст . Требуется C-Kermit 7.0 или K95 1.1.19 . Эта функциональность также встроена в C-Kermit начиная с версии 8.0.211; НАЖМИТЕ ЗДЕСЬ , чтобы узнать подробности.
  • delete(*)
    Отвечает на часто задаваемый вопрос «Как удалить файлы старше n дней?». Требуется C-Kermit 7.0 или K95 1.1.19 .
  • просмотр(*)
    Просмотр файлов в интерактивном режиме. Все, что вы когда-либо хотели, в текстовом файловом браузере. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • logrotate
    Ежемесячно чередует журналы подключений. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • Cleandups(*)
    Довольно сложное приложение для управления файлами (фактически используемое для управления обновлением и установкой бинарных файлов бета-тестирования C-Kermit 7.0 на нашем ftp-сервере). Требуется C-Кермит 7.0 .
  • install(*)
    Перемещает новые двоичные файлы бета-тестирования C-Kermit из промежуточной области на ftp-сайт, удаляя по ходу соответствующие двоичные файлы из предыдущих бета-тестов, чтобы не заполнять диск ftp-сервера. Требуется C-Кермит 7.0 .
  • merge(*)
    Объединяет любое количество предварительно отсортированных файлов в один выходной файл. Иллюстрирует пакет файлового ввода-вывода C-Kermit, работающий с несколькими файлами одновременно. Требуется C-Кермит 7.0 .
  • ftplog(*)
    Анализирует журнал передачи файлов в формате wu-ftpd, который также создается в формате FTP SET TRANSACTION-LOG C-Kermit. Перечисляет пять самых популярных файлов, а также печатает гистограмму количества файлов по количеству обращений. Иллюстрирует ассоциативные массивы. Требуется C-Кермит 7.0 .

Скрипты обработки чисел:

  • статистика(*)
    Учитывая файл, в котором каждая строка содержит пару чисел X и Y, вычисляет и печатает максимальное, минимальное, среднее значение, дисперсию и стандартное отклонение X и Y, а также коэффициент корреляции X и Y. Числа в файле могут (но не обязательно) иметь десятичные точки и дробные части. Иллюстрирует арифметические функции с плавающей запятой, представленные в C-Kermit 7.0.
  • xstats(*)
    Аналогично статистике , за исключением реализации (гораздо проще) с использованием S-выражений C-Kermit 8.0 .

Арифметика даты и времени:

  • пасха(*)
    Вычисляет дату Пасхи для любого года между 1900 и 2099 годами с использованием S-выражений. Требуется C-Kermit 7.0 или новее или K95 1.1.20 или новее.
  • easter2(*)
    То же, что и предыдущий, за исключением того, что здесь используется новая функция C-Kermit 8.0.212 , которая принудительно выполняет целочисленную арифметику, необходимую в этом типе вычислений.
  • Calendar(*)
    Как и Unix ‘cal’ — печатает календарь на любой месяц любого года между 1859 и 9999. Требуется C-Kermit 8.0 или более поздняя версия или K95 2.0 или более поздняя версия.
  • удалить старое
    Как удалить файлы старше заданного возраста в настройках клиента/сервера.

Файлы инициализации C-Kermit

  • kermrc
    Некогда стандартный файл инициализации C-Kermit. Включает определения каталога служб с макросами автоматического входа в систему для различных платформ и методов связи. Это скорее демонстрация языка сценариев, чем практическое использование.
  • mykermrc
    Пример файла настройки C-Kermit. Требуется C-Kermit 6.0 или более поздняя версия.

Расширение протокола Кермита:

  • rmsg
    Макрос-реализация (отсутствующей) команды REMOTE MESSAGE для C-Kermit 8.0 и Kermit 95 2.0 или более поздней версии.

Ключевые карты:

  • koikeys
    Настраивает «по звуку» клавиатуру для кириллических букв, которая будет использоваться в режиме русской клавиатуры в Kermit 95 . Это позволяет людям, имеющим QWERTY-клавиатуру, «печатать вслепую» кириллицу (кириллические буквы сопоставляются с латинскими буквами, имеющими более или менее «тот же звук»). Обычный режим русской клавиатуры использует стандартную кириллическую раскладку клавиатуры, незнакомую пользователям QWERTY. Любая версия Kermit 95, начиная примерно с 1.1.8, может использовать эту карту ключей. Чтобы просмотреть версию этого файла сценария, в которой также отображается кириллическая версия каждого символа, нажмите здесь , но вам, возможно, придется указать браузеру, что кодировка текста — utf-8 (хотя предполагается, что это кодировка по умолчанию и предпочтительная для текст в сети). И НАЖМИТЕ ЗДЕСЬдля HTML-версии с правильными символами кириллицы, которую можно распечатать на одной странице.
  • Карта ключей ar-medicare
    Kermit 95 необходима для доступа к центру рассмотрения претензий Medicare штата Арканзас.

HTML-скрипты

  • html
    Преобразует обычный текстовый файл в HTML. Полностью переписано для производственного использования в 2017 году.

Объектно-ориентированного программирования:

(И другие методы творческого программирования.) Этот раздел автор: Дат Тук Нгуен .

  • гепард
    Программирование на основе правил в Kermit: Animal Taxonomy. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия, а также модуль механизма правил .
  • база
    правил Программирование на основе правил в Kermit. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия.
  • авторемонт
    Демонстрация «базы правил». Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия.
  • Сократ
    Пролог-подобное декларативное логическое программирование в Kermit. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия.
  • симметричные
    шаблоны и предикаты. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия.
  • Моделирование
    Моделирование магазина мороженого: приходы клиентов, заказы клиентов, уход клиентов — все запрограммировано как объекты. Требуется макрос класса, определенный ЗДЕСЬ и C-Kermit 8.0 или Kermit 95 2.0 или более поздней версии.
  • Dining-philosophers
    The Dining Philosophers Проблема: семафор, процесс, таймер и параллелизм. Требуется макрос класса, определенный ЗДЕСЬ и C-Kermit 8.0 или Kermit 95 2.0 или более поздней версии.
  • обеденные-пьющие-философы
    Проблема обедающих философов с вином!
  • permute (*)
    Рекурсивная перестановка строк. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия.
  • shortest_path
    Найти кратчайший путь в сети. Иллюстрирует S-выражения и функции. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия.
  • fibonacci
    Рекурсивные и итерационные функции Фибоначчи. Иллюстрирует S-выражения и функции. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия.
  • makechange
    Сколько способов обменять доллар? Иллюстрирует S-выражения и функции. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия.
  • the8queens
    Задача о 8 ферзях. Иллюстрирует массивы, S-выражения, составные логические выражения. Требуется C-Kermit 8.0 или Kermit 95 2.0 или более поздняя версия.
  • Income_tax
    Расчет подоходного налога. Иллюстрирует S-выражения, арифметику с плавающей запятой. Требуется C-Кермит 8.0 .
  • Ханой
    Башни Ханоя. Иллюстрирует S-выражения, рекурсию. Требуется C-Кермит 8.0 .
  • hanoi2
    Более быстрая версия Ханойских башен. Иллюстрирует, как ускорить рекурсивные функции. Требуется C-Кермит 8.0 .
  • class
    Осуществляет объектно-ориентированное программирование на C-Kermit 8.0 и использует некоторые функции S-Expression. Требуется C-Кермит 8.0 .

account
Демо-приложение, в котором используется тот же пример, который используется в большинстве диалектов Smalltalk в качестве введения в объектно-ориентированное программирование. Чтобы запустить эту демонстрацию:
Си-Кермит> возьми класс

Си-Кермит> возьми на заметку

  • Требуется C-Кермит 8.0 .
  • shortcircuit
    Короткое замыкание последовательного выполнения макросов (а) пока все они успешны, (б) пока один из них не увенчается успехом. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • lispops
    Этот небольшой пакет определяет серию LISP-подобных арифметических операторов для C-Kermit и Kermit 95. Требуется C-Kermit 7.0 или K95 1.1.19 (устарело из-за встроенного синтаксиса LISP C-Kermit 8.0 ).
  • Матрица
    Матрица является важным элементом во многих областях вычислений. C-Kermit и Kermit 95 могут легко выполнять матричные операции. Этот скрипт создает две матрицы, A и B, а затем вычисляет их сумму: матрицу C.
  • noswitch
    «ПЕРЕКЛЮЧАТЕЛЬ считается вредным»
  • oop
    Объектно-ориентированное программирование на C-Kermit и Kermit 95. Веселье с собаками и кошками.
  • complex
    Комплексные числа не являются встроенным типом многих языков программирования. Здесь на помощь приходит ООП с определяемым пользователем типом. Этот сценарий определяет класс комплексных чисел в C-Kermit, предлагая знакомый интерфейс C++. Требуется C-Кермит 7.0.
  • wordcount(*)
    Подсчет частоты слов — это Excel языков сценариев, таких как awk и Perl. Используя ООП, C-Kermit также легко справляется с этой задачей. Этот сценарий определяет и использует класс Words для подсчета вхождений уникальных слов в текстовый файл. Класс Words скрывает детали реализации и способствует повторному использованию — флагману ООП. Требуется C-Кермит 7.0.
  • наследование
    Ни один объектно-ориентированный язык программирования не обходится без наследования. Этот скрипт отображает наследование в C-Kermit и Kermit 95.
  • Multiple
    Множественное наследование обогащает дизайн программного обеспечения. Не во всех ООП-языках оно есть: в C++ есть; Java и Smalltalk этого не делают. Этот скрипт реализует множественное наследование в C-Kermit. Для представления предмета используется знаменитый класс животных, встречающийся во многих справочниках по C++ и Smalltalk.
  • мешок
    Контейнер— ключевое понятие в объектно-ориентированном программировании . Smalltalk, C++ и т. д. имеют стандартные библиотеки контейнеров. Этот скрипт определяет класс «сумка» в C-Kermit/Kermit 95. Bag предлагает богатый интерфейс использования.
  • string
    Простейший строковый класс, основанный на модели Smalltalk.
  • семафор
    Мы используем семафоры для координации вычислительных задач, совместного использования ресурсов и т. д. Этот сценарий определяет классы семафоров как в стилях Smalltalk, так и в C++. Требуется C-Kermit 6.0/K95 1.1.17.
  • синглтон
    В сообществе шаблонов синглтон — это класс, который может иметь только один экземпляр. Все объекты, созданные из этого класса, ссылаются на один-единственный синглтон! Синглтон очень полезен, когда доступен только один ресурс и различные пользовательские функции обращаются к этому ресурсу по разным ссылкам. Класс Singleton гарантирует, что из него можно создать экземпляр одного и только одного объекта, хотя и под разными именами.
  • состояние
    Конечный автомат является полезной концепцией во многих приложениях. Этот сценарий предлагает структуру для конечного автомата.

Тесты на пытки на скриптовом языке:

  • демо(*)
    Интерактивный «испытание пытками» скриптового языка C-Kermit. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • iftest(*)
    Тренажер для составных логических выражений. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • функции(*)
    Тренажер функций. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • localarray(*)
    Средство проверки локального массива. Требуется C-Kermit 7.0 или K95 1.1.19 .
  • date
    Тренажер для форматов даты и времени и арифметики. Требуется C-Kermit 7.0 или более поздняя версия. Сценарий обновлен 26 апреля 2020 г.
  • sexp
    Тренажер для S-выражений и арифметики с плавающей запятой. Требуется C-Kermit 8.0 или K95 2.0 .

Вершина

Ссылки:

  • Библиотека сценариев MS-DOS Kermit
  • Справочник по переносимости скриптов Kermit
  • Библиотека сценариев Kermit (вверху)
  • Домашняя страница Кермита
  • C-Кермит
  • C-Кермит инструкция
  • Примечания к обновлению C-Kermit 7.0
  • Примечания к обновлению C-Kermit 8.0
  • Примечания к обновлению C-Kermit 9.0
  • Кермит 95
  • Режим Кермита EMACS
  • Тематические исследования