shl(1) (User Environment Utilities) shl(1)
NAME
shl - shell layer manager
SYNOPSIS
shl
DESCRIPTION
shl allows a user to interact with more than one shell from a single
terminal. The user controls these shells, known as layers, using the
commands described below.
The current layer is the layer which can receive input from the
keyboard. Other layers attempting to read from the keyboard are
blocked. Output from multiple layers is multiplexed onto the
terminal. To have the output of a layer blocked when it is not
current, the stty option loblk may be set within the layer.
The stty character swtch (set to ^Z if NUL) is used to switch control
to shl from a layer. shl has its own prompt, >>>, to help
distinguish it from a layer.
A layer is a shell which has been bound to a virtual tty device
(/dev/sxt???). The virtual device can be manipulated like a real tty
device using stty(1) and ioctl(2). Each layer has its own process
group id.
Definitions
A name is a sequence of characters delimited by a blank, tab or new-
line. Only the first eight characters are significant. The names
(1) through (7) cannot be used when creating a layer. They are used
by shl when no name is supplied. They may be abbreviated to just the
digit.
Commands
The following commands may be issued from the shl prompt level. Any
unique prefix is accepted.
create [ name ]
Create a layer called name and make it the current layer. If
no argument is given, a layer will be created with a name of
the form (#) where # is the last digit of the virtual device
bound to the layer. The shell prompt variable PS1 is set to
the name of the layer followed by a space. A maximum of seven
layers can be created.
block name [ name ... ]
For each name, block the output of the corresponding layer when
it is not the current layer. This is equivalent to setting the
stty option -loblk within the layer.
delete name [ name ... ]
For each name, delete the corresponding layer. All processes
in the process group of the layer are sent the SIGHUP signal
8/91 Page 1
shl(1) (User Environment Utilities) shl(1)
(see signal(2)).
help (or ?)
Print the syntax of the shl commands.
layers [ -l ] [ name ... ]
For each name, list the layer name and its process group. The
-l option produces a ps(1)-like listing. If no arguments are
given, information is presented for all existing layers.
resume [ name ]
Make the layer referenced by name the current layer. If no
argument is given, the last existing current layer will be
resumed.
toggle
Resume the layer that was current before the last current
layer.
unblock name [ name ... ]
For each name, do not block the output of the corresponding
layer when it is not the current layer. This is equivalent to
setting the stty option -loblk within the layer.
quit Exit shl. All layers are sent the SIGHUP signal.
name Make the layer referenced by name the current layer.
FILES
/dev/sxt??? Virtual tty devices
$SHELL Variable containing path name of the shell to use
(default is /bin/sh).
SEE ALSO
sh(1), stty(1).
ioctl(2), signal(2) in the Programmer's Reference Manual.
sxt(7) in the System Administrator's Reference Manual.
WARNING
To avoid disabling the suspend character when in the job control
environment, the swtch character must be redefined.
Page 2 8/91