.TH KIBITZ 1 "19 October 1994"
kibitz \- allow two people to interact with one shell
.I program program-args...
.I program program-args...
allows two (or more) people to interact with one shell (or any arbitrary
A novice user can ask an expert user for help. Using
the expert can see what the user is doing, and offer advice or
and then starting a full-screen editor, people may carry out a
conversation, retaining the ability to scroll backwards,
save the entire conversation, or even edit it while in progress.
People can team up on games, document editing, or other cooperative
tasks where each person has strengths and weaknesses that complement one
runs kibitz with the argument of the
user to kibitz. For example:
starts a new shell (or another program, if given on the command
line), while prompting user2 to run
as directed, the keystrokes of both users become the input of
the shell. Similarly, both users receive the output from the
it suffices to terminate the shell itself. For example, if either user
types ^D (and the shell accepts this to be EOF), the shell terminates
Normally, all characters are passed uninterpreted. However, if the
escape character (described when
starts) is issued, the user
Also, job control may be used while in the interpreter, to, for example,
can provide various effects. For example, you can emulate a two-way write(1)
session with the command:
kibitz user2 sleep 1000000
takes arguments, these should also be separated by whitespace.
with no process underneath. Characters are passed to the other
This is particularly useful for connecting multiple
interactive processes together.
In this mode, characters are not echoed back to the typist.
disables the escape character.
sets the escape character. The default escape character is ^].
turns off informational messages describing what kibitz is doing to
defines the tty to which the invitation should be sent.
to user2 on a remote computer,
to the remote computer with your current username. The flag
for the remote login (e.g. if your account on the remote computer has a
different username). If the
tries to determine your current username by (in that order) inspecting the
environment variables USER and LOGNAME, then by using the commands
can also be given by user2 when prompted to run
The current implementation of kibitz explicitly understands only two users,
however, it is nonetheless possible to have a three (or more) -way kibitz,
For example, the following command runs
with the current user, user2, and user3:
% kibitz user2 kibitz user3
Additional users may be added by simply appending more "kibitz user"
but supports the ability to add additional users (and drop them)
assumes the 2nd user has the same terminal type and size as the 1st user.
If this assumption is incorrect, graphical programs may display oddly.
handles character graphics, but cannot handle bitmapped graphics. Thus,
% xterm -e kibitz will work
% kibitz xterm will not work
However, you can get the effect of the latter command by using
uses the same permissions as used by rlogin, rsh, etc. Thus, you
to users at hosts for which you can rlogin.
will prompt for a password on the remote host if
to users at remote hosts,
needs to distinguish your prompt from other things that may precede it
(Ideally, the end of it is preferred but any part should suffice.)
If you have an unusual prompt,
set the environment variable EXPECT_PROMPT to an egrep(1)-style
Brackets should be preceded with one backslash in ranges,
and three backslashes for literal brackets.
The default prompt r.e. is "($|%|#)\ ".
script uses the X authorization mechanism for inter-host communication
so it does not need to login, recognize your prompt, or require kibitz
on the remote host. It does however need permission to access
An early version of Sun's tmpfs had a bug in it that causes
reports "error flushing ...: Is a directory"
ask Sun for patch #100174.
If your Expect is not compiled with multiple-process support (i.e., you do not
have a working select or poll), you will not be able to run kibitz.
The environment variable SHELL is used to determine the shell to start, if no
other program is given on the command line.
If the environment variable EXPECT_PROMPT exists, it is taken as a regular
expression which matches the end of your login prompt (but does not otherwise
occur while logging in). See also CAVEATS above.
If the environment variables USER or LOGNAME are defined, they are used to
determine the current user name for a
to a remote computer. See description of the
option in ARGUMENTS above.
"Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Programs"
O'Reilly and Associates, January 1995.
"Kibitz \- Connecting Multiple Interactive Programs Together", \fRby Don Libes,
Software \- Practice & Experience, John Wiley & Sons, West Sussex, England,
Vol. 23, No. 5, May, 1993.
Don Libes, National Institute of Standards and Technology
appreciate credit if this program or parts of it are used.