Web Api Shellというシェル(wash)

私はUnix系のシェルスクリプトが好きだ。理由は簡単。記述がスマートであるからだ。

現在ではGUI系がほとんどで、CUILinuxでのsshなど一部の人間以外に使う理由は無い。でも、CUIは使ってみると奥が深く、限りなく何でも出来るし、自動化も出来る。それも、他の言語に比べて圧倒的に少ない行数で。大きな記述には向かないが、小さな記述ならほぼ万能。シェルスクリプトをちまちまと組むのが好きだ。

shell scriptとは

一応、知らない人のために簡単な説明をしておこう。
現在のGUI(グラフィカルユーザインターフェイス)をの操作を全てコマンドで行う。
例えばディレクトリ(フォルダ)の移動などの基本操作をコマンドで示すとこうなる。

#ディレクトリの移動
$cd dir 

#ディレクトリの作成
$mkdir dir

#テキストファイルの閲覧
$cat text.txt

また、これだけでは何も出来ないが、繰り返し、text出力、何よりパイプがある。
パイプは、非常に、非常にvery,very便利だ。
その便利ぶりは、他の追随を許さない。その便利ぶりが世の中に知られていれば、環境問題は解決したかもしれない。
パイプ(|←これ)というのは、コマンドの結果を他のコマンドの入力として使うものだ。

例えば、意味は無いけど「ディレクトリの一覧を表示して、そこからtxtファイルのみを取り出す」というのを一行で書くとこうなる。

#ディレクトリ表示 -1行 | 抽出 '.txt'
$ls -1 | grep '.txt'

要するに、最初のコマンドの結果を次のコマンドの入力として使うという事だ。

washの始まり

最近yahoo pipesというwebサービスが始まったが、あれはGUIだった。失望した。
また、扱えるデータもxmlのみ。絶望した。
だから、考えた。シェルで、標準入出力をwebサービスまで拡張しようと。

入力は、xml,rss,web api,html、出力はhtml,txt,xml,rss,web api,mail。
要するにウェブを読んで、ウェブを書き出すシェルだ。

例えばこういうコマンド

#「かえる」でグーグれ
$google かえる

出力は
タイトル:URL:説明
の形式でトップから10行記述。

#はてなブックマークのほっとエントリーは?
$b.hanena -hot

出力は
タイトル:URL:ブックマーク数:説明
形式で10行

#ユーチューブでカエルの映像は
$youtube カエル

出力
タイトル:URL
形式で10行

#rssフィードを取り出したい
$rss URL

出力
val1:val2:val3
形式で出力

#rssをhtml形式で出力したい
$rss URL | html format >hoge.html

出力をhtmlに整形後hoge.htmlに書き出し

#cronで一定時間に出力したい
$cron 4h | rss URL | html format >hoge.html

4時間ごとにrssからfeedをhoge.htmlに書き出し

#cronで一定時間にメール出力したい
$cron 4h | rss URL | html format >mail admin@hoge.jp

4時間ごとにrssからfeedをadmin@hoge.jpに送信


これをhtml(php)ファイルに記述すると動くようなフレームワークが作りたい。
というか練習がてら作る。

出来ればおそらく、世界はshell scriptで救われるに違いない。これは間違いない。
そうそう、名前だけどzsh(zという最終的なshell)が有るし、web shell略してWSHと思ったけど、windows script hostなんてものがあるから、wash(洗う、いやWeb Api SHell)なんてどうだろうとか。適当に作るか。