MSH (1)
nmh shell (and BBoard reader)
SYNOPSIS
+.5i
msh
\%[-prompt\ string]
\%[-scan] \%[-noscan]
\%[-topcur] \%[-notopcur]
\%[file]
\%[-version]
\%[-help]
-.5i
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\0(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 command loop.
The user may type most of the normal nmh commands. 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., specifying 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:
+.5i
ali
burst
comp
dist
folder
forw
inc
mark
mhmail
mhn
msgchk
next
packf
pick
prev
refile
repl
rmm
scan
send
show
sortm
whatnow
whom
-.5i
In addition, msh has a \*(lqhelp\*(rq command which gives a
brief overview. To terminate msh, type CTRL-D, or use the
\*(lqquit\*(rq command. If msh is being invoked from bbc,
then typing CTRL-D will also tell bbc to exit as well, while
using the \*(lqquit\*(rq 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 \*(lqquit\*(rq
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 commands that
msh executes; see mh-profile\0(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\0unseen'
on start-up if new items are present in the BBoard. This feature is
best used from bbc, which correctly sets the stage. Second, the
mark command in msh acts specially when you are reading a
BBoard, since msh will consult the sequence \*(lqunseen\*(rq 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\0-sequence\0unseen\0-delete\0-nozero\0all' Hence, to discard
all of the messages in the current BBoard you're reading, just use the
mark command with no arguments.
Normally, the \*(lqexit\*(rq command is identical to the \*(lqquit\*(rq
command in msh. When run under bbc however, \*(lqexit\*(rq
directs msh to mark all messages as seen and then \*(lqquit\*(rq.
For speedy type-in, this command is often abbreviated as just
\*(lqe\*(rq.
When invoked from vmh, another special feature is enabled:
The `topcur' switch directs msh to have the current message
\*(lqtrack\*(rq the top line of the vmh scan window. Normally,
msh has the current message \*(lqtrack\*(rq the center of the window
(under `-notopcur', which is the default).
msh supports an output redirection facility. Commands may be
followed by one of
+.5i
\w'| \fIcommand\fR 'u
^> file~^write output to file
^>> file~^append output to file
^| command~^pipe output to UNIX command
-.5i
If file starts with a `\~' (tilde), then a csh-like expansion
takes place. Note that command is interpreted by sh\0(1).
Also note that msh does NOT support history substitutions, variable
substitutions, or alias substitutions.
When parsing commands to the left of any redirection symbol, msh
will honor `\\' (back-slash) as the quote next-character symbol, and
`"' (double-quote) as quote-word delimiters. All other input tokens
are separated by whitespace (spaces and tabs).
^$HOME/.mh\(ruprofile~^The user profile
^/etc/nmh/mts.conf~^nmh mts configuration 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 \*(lq./msgbox\*(rq
`-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 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 present 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\0select' switch. Clever users of nmh will put the line
pick:\0-seq\0select\0-list
in their .mh\(ruprofile file so that pick works equally well
from both the shell and msh.
sortm always uses \*(lq-noverbose\*(rq and if
\*(lq-textfield\ field\*(lq is used, \*(lq-limit 0\*(rq.
The msh program inherits most (if not all) of the bugs from the
nmh commands it implements.
|