MSH(1)                                                     MSH(1)

NAME
       msh - MH shell (and BBoard reader)

SYNOPSIS
       msh    [-prompt string]    [-scan]   [-noscan]   [-topcur]
            [-notopcur] [file] [-help]

DESCRIPTION
       msh is an interactive program that implements a subset  of
       the  normal  MH  commands  operating  on  a single file in
       packf'd format.  That is, msh is used to read a file  that
       contains  a number of messages, as opposed to the standard
       MH style of reading a number of files, each file  being  a
       separate  message  in  a folder.  msh's chief advantage is
       that the normal MH style does not allow  a  file  to  have
       more  than  one  message  in  it.  Hence, msh is ideal for
       reading BBoards, as  these  files  are  delivered  by  the
       transport  system in this format.  In addition, msh can be
       used on other files, such as message archives  which  have
       been packed (see packf (1)).  Finally, msh is an excellent
       MH tutor.  As the only commands available to the user  are
       MH  commands,  this  allows MH beginners to concentrate on
       how commands to MH are formed and (more or less) what they
       mean.

       When  invoked, msh reads the named file, and enters a com-
       mand loop.  The user may type most of the normal  MH  com-
       mands.   The  syntax and semantics of these commands typed
       to msh are identical to their MH counterparts.   In  cases
       where the nature of msh would be inconsistent (e.g., spec-
       ifying a `+folder' with  some  commands),  msh  will  duly
       inform the user.  The commands that msh currently supports
       (in some slightly modified or restricted forms) are:

            ali
            burst
            comp
            dist
            folder
            forw
            inc
            mark
            mhmail
            mhn
            msgchk
            next
            packf
            pick
            prev
            refile
            repl
            rmm
            scan
            send

[mh.6]                        MH.6.8                            1

MSH(1)                                                     MSH(1)

            show
            sortm
            whatnow
            whom

       In addition, msh has a "help" command which gives a  brief
       overview.   To  terminate  msh,  type  CTRL-D,  or use the
       "quit" command.  If msh is being invoked  from  bbc,  then
       typing  CTRL-D  will  also tell bbc to exit as well, while
       using the "quit" command will return control to  bbc,  and
       bbc will continue examining the list of BBoards that it is
       scanning.

       If the file is writable and has been modified, then  using
       "quit"  will query the user if the file should be updated.

       The `-prompt string' switch sets the prompting string  for
       msh.

       You  may  wish to use an alternate MH profile for the com-
       mands that msh executes; see  mh-profile (5)  for  details
       about the $MH envariable.

       When  invoked  from bbc, two special features are enabled:
       First,  the  `-scan'  switch   directs   msh   to   do   a
       `scan unseen'  on start-up if new items are present in the
       BBoard.  This feature is best used from  bbc,  which  cor-
       rectly  sets  the  stage.  Second, the mark command in msh
       acts specially when you are reading a  BBoard,  since  msh
       will  consult  the  sequence  "unseen" in determining what
       messages you have  actually  read.   When  msh  exits,  it
       reports this information to bbc.  In addition, if you give
       the mark command with no arguments, msh will interpret  it
       as  `mark -sequence unseen -delete -nozero all'  Hence, to
       discard all of the messages in the current  BBoard  you're
       reading, just use the mark command with no arguments.

       Normally,  the  "exit"  command is identical to the "quit"
       command in  msh.   When  run  under  bbc  however,  "exit"
       directs  msh to mark all messages as seen and then "quit".
       For speedy type-in, this command is often  abbreviated  as
       just "e".

       When invoked from vmh, another special feature is enabled:
       The `topcur' switch directs msh to have the  current  mes-
       sage  "track"  the  top line of the vmh scan window.  Nor-
       mally, msh has the current message "track" the  center  of
       the window (under `-notopcur', which is the default).

       msh supports an output redirection facility.  Commands may
       be followed by one of

            > file     write output to file
            >> file    append output to file

[mh.6]                        MH.6.8                            2

MSH(1)                                                     MSH(1)

            | command  pipe output to UNIX command

       If file starts with a ` ' (tilde), then a csh-like  expan-
       sion  takes  place.   Note  that command is interpreted by
       sh (1).  Also note that msh does NOT support history  sub-
       stitutions,  variable  substitutions,  or  alias substitu-
       tions.

       When parsing commands to the left of any redirection  sym-
       bol,   msh  will  honor  `\'  (back-slash)  as  the  quote
       next-character   symbol,   and   `"'   (double-quote)   as
       quote-word  delimiters.   All other input tokens are sepa-
       rated by whitespace (spaces and tabs).

FILES
       $HOME/.mh_profile             The user profile
       /usr/lib/mh/mtstailor         tailor file

PROFILE COMPONENTS
       Path:                To determine the user's MH directory
       Msg-Protect:         To set mode when creating a new `file'
       fileproc:            Program to file messages
       showproc:            Program to show messages

SEE ALSO
       bbc(1)

DEFAULTS
       `file' defaults to "./msgbox"
       `-prompt (msh) '
       `-noscan'
       `-notopcur'

CONTEXT
       None

BUGS
       The argument to the `-prompt' switch must  be  interpreted
       as  a  single token by the shell that invokes msh.  There-
       fore, one must usually place the argument to  this  switch
       inside double-quotes.

       There  is  a  strict limit of messages per file in packf'd
       format which msh can handle.  Usually, this limit is  1000
       messages.

       Please remember that msh is not the CShell, and that a lot
       of the nice facilities provided by the latter are not pre-
       sent in the former.

       In  particular,  msh  does not understand back-quoting, so
       the only effective way to use pick inside msh is to always
       use the `-seq select' switch.  Clever users of MH will put
       the line

[mh.6]                        MH.6.8                            3

MSH(1)                                                     MSH(1)

            pick: -seq select -list

       in their .mh_profile file so that pick works equally  well
       from both the shell and msh.

       sortm  always  uses "-noverbose" and if "-textfield field"
       is used, "-limit 0".

       The msh program inherits most (if not  all)  of  the  bugs
       from the MH commands it implements.

[mh.6]                        MH.6.8                            4