1 .TH KIBITZ 1 "19 October 1994"
3 kibitz \- allow two people to interact with one shell
11 .I program program-args...
20 .I program program-args...
24 allows two (or more) people to interact with one shell (or any arbitrary
25 program). Uses include:
29 A novice user can ask an expert user for help. Using
31 the expert can see what the user is doing, and offer advice or
32 show how to do it right.
37 and then starting a full-screen editor, people may carry out a
38 conversation, retaining the ability to scroll backwards,
39 save the entire conversation, or even edit it while in progress.
42 People can team up on games, document editing, or other cooperative
43 tasks where each person has strengths and weaknesses that complement one
49 runs kibitz with the argument of the
50 user to kibitz. For example:
55 starts a new shell (or another program, if given on the command
56 line), while prompting user2 to run
60 as directed, the keystrokes of both users become the input of
61 the shell. Similarly, both users receive the output from the
66 it suffices to terminate the shell itself. For example, if either user
67 types ^D (and the shell accepts this to be EOF), the shell terminates
71 Normally, all characters are passed uninterpreted. However, if the
72 escape character (described when
74 starts) is issued, the user
75 may talk directly to the
81 commands may be given.
82 Also, job control may be used while in the interpreter, to, for example,
87 can provide various effects. For example, you can emulate a two-way write(1)
88 session with the command:
90 kibitz user2 sleep 1000000
93 takes arguments, these should also be separated by whitespace.
99 with no process underneath. Characters are passed to the other
101 This is particularly useful for connecting multiple
102 interactive processes together.
103 In this mode, characters are not echoed back to the typist.
106 disables the escape character.
109 sets the escape character. The default escape character is ^].
112 turns off informational messages describing what kibitz is doing to
113 initiate a connection.
116 defines the tty to which the invitation should be sent.
120 to user2 on a remote computer,
124 to the remote computer with your current username. The flag
125 .BI \-proxy " username"
130 for the remote login (e.g. if your account on the remote computer has a
131 different username). If the
135 tries to determine your current username by (in that order) inspecting the
136 environment variables USER and LOGNAME, then by using the commands
145 can also be given by user2 when prompted to run
148 .SH MORE THAN TWO USERS
149 The current implementation of kibitz explicitly understands only two users,
150 however, it is nonetheless possible to have a three (or more) -way kibitz,
153 For example, the following command runs
155 with the current user, user2, and user3:
157 % kibitz user2 kibitz user3
159 Additional users may be added by simply appending more "kibitz user"
166 but supports the ability to add additional users (and drop them)
170 assumes the 2nd user has the same terminal type and size as the 1st user.
171 If this assumption is incorrect, graphical programs may display oddly.
174 handles character graphics, but cannot handle bitmapped graphics. Thus,
177 % xterm -e kibitz will work
178 % kibitz xterm will not work
181 However, you can get the effect of the latter command by using
183 (see SEE ALSO below).
185 uses the same permissions as used by rlogin, rsh, etc. Thus, you
188 to users at hosts for which you can rlogin.
191 will prompt for a password on the remote host if
196 to users at remote hosts,
198 needs to distinguish your prompt from other things that may precede it
200 (Ideally, the end of it is preferred but any part should suffice.)
201 If you have an unusual prompt,
202 set the environment variable EXPECT_PROMPT to an egrep(1)-style
204 Brackets should be preceded with one backslash in ranges,
205 and three backslashes for literal brackets.
206 The default prompt r.e. is "($|%|#)\ ".
211 program on both hosts.
218 script uses the X authorization mechanism for inter-host communication
219 so it does not need to login, recognize your prompt, or require kibitz
220 on the remote host. It does however need permission to access
223 An early version of Sun's tmpfs had a bug in it that causes
227 reports "error flushing ...: Is a directory"
228 ask Sun for patch #100174.
230 If your Expect is not compiled with multiple-process support (i.e., you do not
231 have a working select or poll), you will not be able to run kibitz.
233 The environment variable SHELL is used to determine the shell to start, if no
234 other program is given on the command line.
236 If the environment variable EXPECT_PROMPT exists, it is taken as a regular
237 expression which matches the end of your login prompt (but does not otherwise
238 occur while logging in). See also CAVEATS above.
240 If the environment variables USER or LOGNAME are defined, they are used to
241 determine the current user name for a
243 to a remote computer. See description of the
245 option in ARGUMENTS above.
252 "Exploring Expect: A Tcl-Based Toolkit for Automating Interactive Programs"
254 O'Reilly and Associates, January 1995.
257 "Kibitz \- Connecting Multiple Interactive Programs Together", \fRby Don Libes,
258 Software \- Practice & Experience, John Wiley & Sons, West Sussex, England,
259 Vol. 23, No. 5, May, 1993.
261 Don Libes, National Institute of Standards and Technology
264 is in the public domain.
266 appreciate credit if this program or parts of it are used.