シェルスクリプトマガジン

Open USP Tukubaiシンプルレシピ Part1 テキスト編 (後半・ルービックキューブをつくる など)

このシェルスクリプトを実行すると写真2のような画面になる。

キューブの全6 面が横一列に表示される。左から、正面、上面、右面、背面、底面、左面の順番である。

そしてキー入力待ちになっているが、ここでそれぞれの頭文字(F,U,R,B,D,L)をタイプするとその面が90°回転する。ただし小文字(f,u,r,b,d,l)の時は時計回り、大文字(F,U,R,B,D,L)の時は反時計回りだ。回転すれば勿論、隣接する他の4つの面の状態も変化する。

ターミナルという制約上、立体的に表示することが出来ず、イメージが掴めるまでの間大変なのだが、ちょっと遊んでみよう。

しかし実は、入力プロンプトのところに解答が記してある( 写真2 では“RldDLRLFFuB”)。よって、この通りにタイプすれば誰でも簡単に全色を揃えることができてしまうのだが……。

尚、終了したい時は“q” とタイプする。

解説

プログラムリスト(特に後者の12 通りの回転関数)を観察してみると、self やdelf 等、帳票作成でも使用したコマンドが頻出している。

先のレシピでは使わなかったものの本レシピで登場したtarr やyarr というコマンドも帳票作成でよく使うコマンドである。

先のレシピ解説において「Tukubai はSQLの句を一つ一つ切り出したようなコマンドが多い」と述べたわけだが、それが行列の操作に多用されているとことが興味深い。これはつまり、データベース操作も行列操作も、数理的にはほぼ同じ概念の操作であるということを意味しているのではないだろうか。

Tukubai は、シェルスクリプトをデータベース言語化するための拡張コマンドセットというわけではない、そう主張する理由はここにある。多くが単機能のコマンドとして切り出されているおかげで汎用性を兼ね備えるようになったのだ。

人は情報を整理する時によく紙と鉛筆を使う。それと同様にしてコンピューターに対し、情報整理をテキストデータ・テキストファイルで行わせようというのがOpen uspTukubai をリリースしたUSP 研究所の提案であり、そのための要素技術がTukubai を加えたUNIX コマンドセットと言えよう。