MSH(1)                                                     MSH(1)

NAME
       msh - nmh shell (and BBoard reader)

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

DESCRIPTION
       msh is an interactive program that implements a subset  of
       the  normal  nmh  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
       nmh style of reading a number of files, each file being  a
       separate  message  in  a folder.  msh's chief advantage is
       that the normal nmh 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
       nmh tutor.  As the only commands available to the user are
       nmh  commands, this allows nmh beginners to concentrate on
       how commands to nmh 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 nmh  com-
       mands.   The  syntax and semantics of these commands typed
       to msh are identical to their nmh 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
            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 nmh profile for the com-
       mands that msh executes; see  mh-profile (5)  for  details
       about the $MH environment variable.

       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
            ^| 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).   ^$HOME/.mh_pro-
       file~^The user profile ^/etc/nmh/mts.conf~^nmh mts config-
       uration file ^Path:~^To determine the user's nmh directory
       ^Msg-Protect:~^To  set  mode  when  creating  a new `file'
       ^fileproc:~^Program to file  messages  ^showproc:~^Program
       to  show  messages  bbc(1)  `file'  defaults to "./msgbox"
       `-prompt (msh) ' `-noscan' `-notopcur' None  The  argument
       to  the  `-prompt'  switch must be interpreted as a single
       token by the shell that invokes msh.  Therefore, one  must
       usually  place  the  argument  to  this switch inside dou-
       ble-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  nmh  will
       put the line

            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 nmh commands it implements.

[nmh-0.27]                    MH.6.8                            1