SYNOPSIS
shl
DESCRIPTION
shl provides a method to handle multiple shells in parallel on a single
terminal. Each shell is put in its own session and has its own con-
trolling pseudo-terminal. At a time, one shell layer can receive
input, but output is multiplexed from all layers. When the SWTCH key
(assigned to ^Z at startup if unset) is pressed, shl takes control over
the terminal and allows the user to manage layers. The prompt >>> is
used by shl when commands may be entered.
Definitions
Commands and arguments are separated by spaces or tabs and terminated
by a new-line. A layer name consists of printable characters other
than space, tab, or new-line. Only the first eight characters are sig-
nificant.
Commands
The following commands may be entered at the shl prompt; any unique
prefix is accepted.
create [-[name] | name [command]]
Create a new layer that has the specified name. If name is
omitted, it is taken from an internal counter and formed as
(digit). A name may later be referenced with or without these
braces. If name begins with -, a login shell is started, that
is, the first argument to the shell begins with -, too. An
optional command can be executed instead of the shell. The
shell prompt variable PS1 is set to the name of the layer fol-
lowed by a space character.
name [oldname] newname
Rename the layer oldname or the current layer to newname.
! [command]
Execute command or the default shell in a subshell on the same
terminal device as shl operates on. Switching between layers is
not possible until the command terminates.
block name [name ...]
Block output of the given layers when they are not current lay-
ers.
delete name [name ...]
Delete the given layers, that is, send a SIGHUP to each process
group.
help (or ?)
Print the syntax of all shl commands.
layers [-l] [name ...]
name Resume the specified layer. Any unique name prefix is accepted.
ENVIRONMENT VARIABLES
SHELL Default shell program.
SYSV3 Causes the text of some messages to be changed.
SEE ALSO
ps(1), sh(1), stty(1), termio(7I)
NOTES
This shl implementation uses regular pseudo terminals and thus works
slightly different than the original System V one.
The block command will not suspend a layer from execution immediately.
The layer will continue to run until the pseudo terminal's buffer is
filled. This can lead to lots of output once the layer is resumed or
unblocked.
The loblk setting of stty(1) is not honored.
While pseudo-terminal settings are an attribute of a specific layer,
terminal states set by escape sequences are not and can cause unpre-
dictable results when layers are switched. It might be better to stop
or quit screen-handling programs on some output devices.
Heirloom Toolchest 10/8/03 SHL(1)
Man(1) output converted with
man2html