シェルスクリプトの機能を主にデータベース用途向けに補完するためのコマンド群がusp Tukubaiだ。普通ならデータベースの利用を検討するシーン。usp Tukubaiであればシェルスクリプトとテキストファイルでデータベースと同等以上のことをやってのける。
実用性に疑問を感じる人もいるだろう。ところが、あなたがよく買い物に行く大手スーパーやコンビニの商品管理もusp Tukubaiで行われている。usp Tukubaiは本気で開発されたプロダクトだ。
バイナリでデータで管理しようとする文化へのカウンターカルチャー、これがusp Tukubaiが生み出された根本的な理由だ。データ処理の過程においてコンピュータは、データを受け取り、加工し、送り出す作業を繰り返す。バイナリデータの場合、受け取りと送り出しの過程でデータを変換し、加工しやすくする処理が必須となる。これは本質的な処理ではなく、コンピュータのリソースやプログラム開発コストなどを、ある意味無駄使いしていると言える。
これらの作業をすべてテキストファイルで処理できれば、ハヤくて、安くて、ウマくなる。これを実現する手段がシェルスクリプト+テキストファイル+コマンドだ。この方法は設定ファイルをほぼすべてテキストファイルにしたUNIXのやり方に倣ったにすぎない。
データベース処理やテキストデータを加工するコマンドがある。Webもテキストデータ処理が多いことから、それぞれに便利なコマンドが用意されている。詳しくはTukubaiオンラインコマンドマニュアルを参照のこと。
データベースのみならずさまざまなコマンドが用意されており、たとえばWebインターフェースに対応するコマンドも用意されている。
たとえばmojihame(1)。次のコマンドでtable要素を簡単に作成できる。LAMP(Linux Apache MySQL PHP)のMとPをそれぞれTextとShell Scriptに置き換えた「LATS」を構築することが可能。$ cat ./template <table> <tr> <td>人</td> <td>金</td> </tr> <!-- RECORDS --> <tr> <td>%1</td> <td>%2</td> </tr> <!-- RECORDS --> </table> $
$ cat ./data 鎌田 5412万円 濱田 2132万円 上田 -400万円 $
$ mojihame -lRECORDS ./template ./data <table> <tr> <td>人</td> <td>金</td> </tr> <tr> <td>鎌田</td> <td>5412万円</td> </tr> <tr> <td>濱田</td> <td>2132万円</td> </tr> <tr> <td>上田</td> <td>-400万円</td> </tr> </table> $
MITライセンスのもとで提供される無償版であるOpen usp Tukubaiを入手可能。システム要件やインストール方法等、詳しい使い方はそれぞれを参照のこと。
usp TukubaiについてはOpen usp Tukubaiについても参照のこと。
※ USP MAGAZINE Vol.4「特集1 ついに始動Open usp Tukubaiプロジェクト第一章 3分でわかるTukubai」より加筆修正後転載
※ usp Tukubaiはユニバーサル・シェル・プログラミング研究所の登録商標。