home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
ckscripts
/
READ.ME
< prev
next >
Wrap
Text File
|
2020-01-01
|
12KB
|
335 lines
C-KERMIT / KERMIT 95 SCRIPTS LIBRARY
Most recent update: 8 February 2000.
The command and script language of C-Kermit and Kermit 95 is described in
Using C-Kermit, 2nd Edition, as supplemented by the ckermit2.txt file.
Most of these scripts are intended to illustrate new features of C-Kermit
7.0 (released 1 Jan 2000) and K95 1.1.19.
The scripts are listed below. Those marked with (*) are "kerbang" scripts
which, in UNIX, can be used exactly like shell scripts if you give them
execute permission:
chmod +x scriptname
Command-line arguments are accepted in the expected manner, e.g.:
autotelnet xyz.com myuserid
The first line of each kerbang script looks like:
#!/usr/local/bin/wermit +
(but without the indentation). This indicates the pathname of the C-Kermit
executable that is to execute the script; change this line as needed. The
trailing plus sign is required if command-line arguments are to be passed
to the script (and doesn't hurt if they are not). The "kerbang" feature
requires C-Kermit 7.0. For more about kerbang scripts, see ckermit2.txt,
Section 7.19 (which also explains how to use them in VMS).
On non-UNIX platforms, these scripts are executed by:
1. Giving a TAKE command to Kermit, or:
2. Including the script filename as the first command-line argument to
the Kermit program, or:
3. In Windows 95/98/NT/2000, by filetype association (when the script
filename has the suffix ".ksc"), but in this case Windows does not
provide a mechanism to pass arguments to the script.
Outside of UNIX, the "kerbang" line has no effect, since it is a comment to
Kermit. In VMS, any references to "environment variables" can be satisfied
by logical names or DCL symbols.
These scripts are for illustrative purposes only and carry no
warranty, express or implied.
------------------------------------------------------------------------
CONTENTS
* C-Kermit Initialization Files
* Internet Scripts
* Modem Scripts
* Pager Scripts
* Screen-Formatting Scripts
* Screen-Scraping Scripts
* File-Transfer Scripts
* File-Management Scripts
* Number-Crunching Scripts
* Object-Oriented Programming
* Script-Language Torture Tests
------------------------------------------------------------------------
C-Kermit Initialization Files
* kermrc
The standard C-Kermit initialization file, slightly updated for
version 7.0. C-Kermit 6.0 or later required. Includes definitions for
the services directory with automatic login macros for various
platforms and communication methods.
* mykermrc
Sample C-Kermit customization file. C-Kermit 6.0 or later required.
Internet Scripts:
* autotelnet (*)
Makes an automated Telnet connection. C-Kermit 7.0 or K95 1.1.19
required.
* autotelnet6 (*)
Makes an automated Telnet connection. Same as "autotelnet" but does
not use any new features of C-Kermit 7.0. C-Kermit 6.0 or K95 1.1.9 or
later required.
* iksget (*)
Gets files from an Internet Kermit Service.
* iksdpy (*)
The Internet Kermit Service Daemon realtime display monitor. C-Kermit
7.0 required.
Modem Scripts:
* getline (*)
Given a list of serial devices usable for dialing out, finds and
assigns the first free one. C-Kermit 7.0 or K95 1.1.19 required.
* modemtest (*)
Given a list of modem pool phone numbers, makes repeated calls to each
one; logs into a specified host, transfers files back and forth, and
keeps a logfile of connection and performance statistics. Runs in
UNIX, Windows 95/98/NT/2000, or VMS. C-Kermit 7.0 or K95 1.1.19
required.
* dialout (*)
Puts up a form for the user to fill out to select modem type, port,
speed, and phone number, and then dials upon user command. C-Kermit
7.0 or K95 1.1.19 required. Note: This is also a screen-formatting
script.
* callbycall
A dialing script that selects the most appropriate long-distance
provider by time of day, and that also cycles through providers upon
busy signals (in case the provider itself is busy, rather than the
destination number). For use with SET DIAL MACRO. By Peter Eichhorn,
Assyst GmbH, Mⁿnchen. C-Kermit 7.0 or K95 1.1.19 required.
Pager Scripts:
* numpage (*)
Script for beepers or numeric pagers. C-Kermit 7.0 or K95 1.1.19
required.
* alphapage (*)
TAP/IXO alphanumeric paging script. C-Kermit 7.0 or K95 1.1.19
required.
* alphapage6
TAP/IXO alphanumeric paging script that can be used by C-Kermit 6.0 or
K95 1.1.13 or later.
* More about pagers
Screen-Formatting Scripts:
* bottom (*)
A simple one-line script that uses C-Kermit to put the cursor on the
bottom line of your screen. C-Kermit 7.0 or K95 1.1.19 required.
* menu (*)
Skeleton of a menu application. C-Kermit 7.0 or K95 1.1.19 required.
* Also see the dialout script, which uses screen-drawing techniques.
Screen-Scraping Scripts:
* scrape
In Kermit 95, scripts can interact with the terminal emulator to
retrieve strings from specified locations on the terminal screen,
similar to HLLAPI. In this script, screen forms are parsed to select
and retrieve images from a database on the host computer. By Max
Evarts. K95 1.1.17 or later required.
File-Transfer Scripts:
* deliver (*)
A script that delivers the specified file or files to their
destination, even if the connection is broken in mid-transfer.
C-Kermit 6.0 or K95 1.1.8 or later required.
* synchronize (*)
A script that synchronizes directory trees on two Internet hosts over
a Telnet connection. Only the files that are newer on the source than
at the destination are transferred. Directories are created
automatically as needed at the destination. Files that disappeared
from the source are deleted at the destination. Any mixture of text
and binary files can be handled. The two hosts need not have the same
operating system or file system. The destination host is contacted and
logged in to automatically (so this is also an Internet script); thus
the entire operation can run unattended. C-Kermit 7.0 or K95 1.1.19
required.
File-Management Scripts:
* rgrep (*)
Answers the frequently asked question: "Where is recursive grep?"
Searches through files in a directory tree whose names match the given
pattern and prints all lines in all files that match the given
pattern. C-Kermit 7.0 or K95 1.1.19 required.
* rename (*)
A one-line analog to the UNIX shell "for i in *; do blah; done" loop.
C-Kermit 7.0 or K95 1.1.19 required.
* changetype (*)
Elaboration of rename to general-purpose file-type changing script;
old and new filetypes and file list are given as command-line
arguments, e.g. "changetype hlp txt *" renames *.hlp files to *.txt.
C-Kermit 7.0 or K95 1.1.19 required.
* delete (*)
Answers the Frequently Asked Question "How do I delete files more than
5 days old?". C-Kermit 7.0 or K95 1.1.19 required.
* review (*)
Review files interactively. Everything you ever wanted in a text-mode
file browser. C-Kermit 7.0 or K95 1.1.19 required.
* logrotate
Rotates connection logs on a monthly basis. C-Kermit 7.0 or K95 1.1.19
required.
* cleandups (*)
A rather complex file-management application (used, in fact, to manage
the update and installation of C-Kermit 7.0 Beta-test binaries on our
ftp server). C-Kermit 7.0 required.
* install (*)
Moves new C-Kermit Beta-test binaries from a staging area to the ftp
site, deleting corresponding binaries from previous Beta tests as it
goes, so as not to fill up the ftp server disk. C-Kermit 7.0 required.
* merge (*)
Merges any number of presorted files together into a single output
file. Illustrates C-Kermit 7.0's new file i/o package operating on
multiple files at once. C-Kermit 7.0 required.
* ftplog (*)
Analyzes a file-transfer log in wu-ftpd format, which is also created
by C-Kermit 7.0's SET TRANSACTION-LOG FTP format. Lists the five most
popular files and also prints a histogram of file count per number of
accesses. Illustrates associative arrays. C-Kermit 7.0 required.
Number-Crunching Scripts:
* statistics (*)
Given a file in which each line contains a pair of numbers, X and Y,
computes and prints the maximum, mininum, mean, variance, and standard
deviation of the X's and Y's, and the correlation coefficient of X and
Y. The numbers in file may (but need not) have decimal points and
fractional parts. Illustrates the floating-point arithmetic features
new to C-Kermit 7.0.
Object-Oriented Programming:
(And other creative programming techniques.) This section by Dat Thuc
Nguyen.
* matrix
The matrix is an essential element in many computing areas. C-Kermit
and Kermit 95 can do matrix operations easily. This script creates two
matrices, A and B, then computes their sum: matrix C.
* noswitch
"SWITCH Considered Harmful"
* oop
Object-oriented programming in C-Kermit and Kermit 95. Fun with dogs
and cats.
* complex
Complex numbers are not a built-in type of many programming languages.
Here OOP comes to rescue with the user-defined type. This script
defines a complex number class in C-Kermit, offering the familiar C++
interface. C-Kermit 7.0 required.
* wordcount (*)
Word frequency counting is the Excel of scripting languages such as
awk and Perl. With OOP, C-Kermit also handles the task comfortably.
This script defines and uses the class Words to count the occurrences
of unique words of a plain-text text file. The class Words shields
implementation details and promotes reuse, the flagship of OOP.
C-Kermit 7.0 required.
* inheritance
No object-oriented programming language leaves home without
inheritance. This script displays inheritance in C-Kermit and Kermit
95.
* multiple
Multiple inheritance enriches software design. Not all OOP languages
have it: C++ does; Java and Smalltalk don't. This script implements
multiple inheritance in C-Kermit. The famous animal class found in
many C++ and Smalltalk references is used to present the subject.
* bag
The container is a key concept in object-oriented programming.
Smalltalk, C++, etc. have standard libraries of containers. This
script defines the class 'bag' in C-Kermit/Kermit 95. Bag offers a
rich usage interface.
* string
A rudimentary string class based on the Smalltalk model.
* semaphore
We use semaphores to coordinate computing tasks, share resources, etc.
This script defines semaphore classes in both the Smalltalk and C++
styles. C-Kermit 6.0 / K95 1.1.17 required.
* singleton
In the patterns community, the singleton is a class that can have only
one instance. All objects instantiated from that class refer to the
one and only singleton! The singleton is very useful where there is
only one resource available and various user-defined functions access
that resource under different refferences. The singleton class ensures
that one and only one object can be instantiated from it, though under
different names.
* state
The finite state machine is a useful concept in many applications.
This script suggests a framework for a state machine.
Script-Language Torture Tests:
* demo (*)
An interactive "torture test" for C-Kermit's script language. C-Kermit
7.0 or K95 1.1.19 required.
* iftest (*)
Exerciser for compound Boolean expressions. C-Kermit 7.0 or K95 1.1.19
required.
* functions (*)
Function exerciser. C-Kermit 7.0 or K95 1.1.19 required.
* localarray (*)
Local array exerciser. C-Kermit 7.0 or K95 1.1.19 required.
------------------------------------------------------------------------
Links:
* Kermit script portability reference
* Kermit script library (top)
* Kermit home page
* C-Kermit
* C-Kermit manual
* The ckermit2.txt file
* Kermit 95
------------------------------------------------------------------------
C-Kermit/K95 Script Library / Columbia University / 8 Feb 2000