サンプル:ファイルのSHA1ハッシュを計算する。

MSH> function GetSha1 {
>> $path = $args[0]
>> $bytes = [System.IO.File]::ReadAllBytes($path)
>> $sha1 = new-object System.Security.Cryptography.SHA1Managed
>> $hash = $sha1.ComputeHash($bytes)
>> $retval = ""
>> foreach ($b in $hash) {$retval += $b.ToString("x2")}
>> $retval
>> }
>>
MSH> GetSha1("C:\TEMP\Console1\bin\Debug\Console1.exe")
2c0371c737f9785fc6db4f35ba0973eaa29e1fd0

従来の環境では、ライブラリのインターフェースとコマンドラインのインターフェースが著しく異なっていたために、コマンドラインのプログラムという形でライブラリをラップする必要があった。
このため、コマンドを作らないとライブラリが呼び出せなかったし、ライブラリとは異なるコマンドの使い方を別途覚える必要が生じた。

Monad Shellの場合、いきなりシェルから.NET Frameworkが使える。
コンソールアプリを作る時も、シェルスクリプトを書くときも、同じように.NET Frameworkを使う。
すばらしい。
この環境から始めた人は、UNIXの混沌には耐えられないだろうな。