MSH(1)

NAME
msh - MH シェル

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

DESCRIPTION
msh は packf された形式の単一ファイルを操作する 対話的プログラムで、通常の MH コマンド(の一部)が使えるようになって います。 標準の MH 形式は、一つ一つのファイルが一つのメッセージであり、 そういう形式の多数のファイルを扱うというものですが、それに対して、 msh は、一つのファイルに多数のメッセージが含まれており、そういう一つの ファイルを扱うという場合に使われます。 msh の主な利点は、通常の MH 形式では、一つのファイルに複数の メッセージが含まれているというものを許してないという点です。 この事から、msh は電子掲示板を読むのに理想的だと言えます。 これらのファイルは配送システムによって、この形式で配布されるからです。 加えて、msh は一つにまとめられたメッセージ(packf (1) 参照)の ような他の形式にも使うことが出来ます。 最後に、msh は MH の優れた案内者です。 使えるコマンドは MH コマンドだけなので、 MH 初心者は MH のコマンドがどういう構成になっているかや、 それらの意味するものに集中する事が出来ます。 呼び出されると、msh は指定のファイルを読み、コマンド・ループに入ります。 ユーザーは通常の MH コマンドのほとんどを打ち込む事が出来ます。 これら msh に打ち込まれるコマンドの文法や意味は、 対応する MH コマンドと同じです。 msh にそぐわない指定をした場合(例えば、いくつかのコマンドで `+folder' を 指定した場合)には、当然 msh はユーザーにその旨を伝えます。 msh が現在対応しているコマンド(いくつかは、わずかに変更されていたり、 形式に制限があったりしますが)は、つぎの通りです。

ali
burst
comp
dist
folder
forw
inc
mark
mhmail
mhn
msgchk
next
packf
pick
prev
refile
repl
rmm
scan
send
show
sortm
whatnow
whom
加えて、 msh には簡単な説明を示す “help” コマンドがあります。 msh を終了させるには、CTRL-D を打つか、“quit” コマンドを 使って下さい。 もし、msh が bbc から呼び出された場合は、 CTRL-D を打つと、bbc も終了します。 一方、“quit” コマンドを使うと、bbc の制御下に移り、 bbc は目を通している電子掲示板のリストを調べ続けます。 もしファイルが書き込み可能で、変更された場合、 “quit” を使うと、そのファイルを更新すべきかどうかをユーザーに 尋ねます。 `-prompt string' オプションは msh のプロンプト文字列を設定します。 msh が実行するコマンドに対しては、通常と別の MH プロファイルを 使いたいと思うかも知れませんが、それに関する詳細は、mh-profile (5) の 環境変数 $MH の部分を参照して下さい。 bbc から呼び出された場合は、次の二つの特別な仕様が可能になります。 まず、 `-scan' オプションを付けると、msh の起動時にもし電子掲示板に 新しい記事があった場合、`scan unseen' を実行します。 bbc は unseen を正しく設定をするので、この仕様は bbc からの使用に 最適です。 第二に、 msh 内の mark コマンドは、電子掲示板を読んでいる時は特別な振舞いを します。 msh は実際にどの記事を読んだかを決める際に、 “unseen” シーケンスを見るからです。 msh が終了する時、この情報が bbc に報告されます。 加えて、mark コマンドに引数を与えなかった場合、msh はそれを `mark -sequence unseen -delete -nozero all' と解釈します。 従って、現在読んでいる電子掲示板の全ての記事を捨てる(既に読んだ事にする)場合、 単に mark コマンドを引数無しで使うといいでしょう。 通常、msh に於いては、“exit” コマンドは “quit” コマンド と同じです。 しかし、bbc から実行された場合、“exit” は全てのメッセージを既読 にしてから “quit” します。 打ち込みを速くするために、このコマンドはしばしば “e” と省略されます。 vmh から呼び出された場合、 別の特別な仕様が可能になります。 `topcur' オプションをつけると、msh はカレント・メッセージを vmh の一覧ウィンドーの一番上の行に持って来ます。 通常、msh はカレントメッセージをウィンドーの真中に持って来ます (デフォルトの `-notopcur' の場合)。 msh は出力リダイレクトに対応しています。 msh 内でコマンドを打つ際には、次のうちの一つが続いても構いません。
^> file~^file に書き出す
^>> file~^file に追加書き込みする
^| command~^UNIX コマンド command にパイプ出力する
file が ` ' (チルダ) で始まっている場合、 csh 風の展開が行なわれます。 command は sh (1) によって解釈されます。 なお、msh はヒストリ置換、変数置換、別名置換には対応していません。 コマンドからリダイレクト記号の左側までを解釈する際、 msh は `\' (バックスラッシュ) を次の文字をクォートする記号として考え、 `"' (ダブルクォート) を語をクォートする区切りと考えます。 その他の入力された語は全て、ホワイトスペース(スペースとタブ)で分割されます。 ^$HOME/.mh_profile~^ユーザーのプロファイル ^/usr/pkg/libexec/mh/mtstailor~^テイラー・ファイル ^Path:~^ユーザーの MH ディレクトリを決める ^Msg-Protect:~^新しい `file' を作る際にセットされるモード ^fileproc:~^メッセージを refile するプログラム ^showproc:~^メッセージを表示するためのプログラム bbc(1)
`file'    デフォルトは “./msgbox”
`-prompt (msh) ' `-noscan' `-notopcur' 無し。 `-prompt' に対する引数は、msh を呼び出すシェルにとって 一語として解釈される形でなければなりません。 従って、 通常、このオプションに対する引数はダブル・クォートで囲まれなければなりません。 msh が扱える packf された形式のファイルには、一つのファイルに 含まれるメッセージ数に厳格な上限があります。 通常、この上限は 1000 メッセージです。 msh は CShell ではない事を忘れないで下さい。 そして、後者に用意された素晴らしい仕様の多くは、前者には用意されていない 事を忘れないで下さい。 特に、msh はバッククォートを理解できません。 従って、msh 内の pick に効果的な唯一の方法は常に `-seq select' オプションを使うことです。 賢い MH ユーザーなら、pick が通常のシェルでも msh でも 同じように働くように、以下の行
pick: -seq select -list を自分の .mh_profile に書いている事でしょう。 sortm は “-textfield field“ が “-limit 0” で 使われた場合、常に “-noverbose” がつきます。 msh プログラムは、MH コマンド自身が持っているバグのほとんど (全てではないでしょうが)を継承しています。