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