なぜ今さらバキュラ?

先日、同世代の同僚と飲んでいたら『ゼビウスバキュラって有ったよね。確か 256発弾を当てると壊れるやつ』と言う話で盛り上がってしまったので、思わず日記タイトルに採用してしまいました。

作者の遠藤雅伸さんがイデオンに影響されて開発したそうですがゲームに直接関係ないバックグラウンドストーリーやゼビ語なども設定されて当時のゲーマを夢中にさせました。

また、現在はポケモンの作者として有名な田尻智さんが『ゼビウス 1000万点への解法』を発表したりと、10年以上前にゲーマを辞めてしまった自分にとってホットな時代でした。(^^;

Oracle の検索結果をシェル変数として利用する方法

10年くらい前に日次バッチなどで重宝した Oracle の Select 結果を『`』(バッククォート)で括って、シェル変数に代入する方法です。『<< EOF』まで SQL*Plus 内部で実行され、その結果が SYSDATE 変数に代入されます。

# この機能の正式名称って知らないんですが・・・(汗)

余計な結果が入らないように SQL*Plus をサイレントモード(-s)で起動し、SQL*Plus 内部の各種表示も Off にしています。気をつけないといけない点として、cshksh では閉じる側の『`』の位置が違うところですね。

これを応用すると面倒な月末日の取得処理で Oracle 側の ADD_MONTHS 関数や LAST_DAY 関数が利用できてかなり便利です。(^o^)/

  • csh の場合
#!/bin/csh

set SYSDATE=`sqlplus -s system/manager` << EOF
set feedback off;
set echo off;
set flush off;
set head off;
select sysdate from dual;
EOF

echo $SYSDATE

exit 0
  • ksh の場合
#!/bin/ksh

SYSDATE=`sqlplus -s system/manager << EOF
set feedback off;
set echo off;
set flush off;
set head off;
select sysdate from dual;
EOF`

echo $SYSDATE

exit 0

コマンドラインエディット機能を有効にする方法

もしシェルの設定でコマンドラインエディット機能が有効になっていないようでしたら、以下のコマンドを実行すると操作性がとてつもなく向上します。私はこの機能が有るから Windows 上でも Cygwin が手放せないと言っても過言では有りません。(^o^)v

bindkey -v  (viキーバインドで操作可能)
bindkey -e  (emacsキーバインドで操作可能)
set -o vi   (viキーバインドで操作可能)
set -o emacs (emacsキーバインドで操作可能)
set -o vi   (viキーバインドで操作可能)
set -o emacs (emacsキーバインドで操作可能)
bindkey -v  (viキーバインドで操作可能)
set -o vi   (viキーバインドで操作可能)
bindkey -e  (emacsキーバインドで操作可能)
set -o emacs (emacsキーバインドで操作可能)

vi キーバインド系の操作を開始するためには、一度、Esc キーを押す必要が有ります。カーソル移動は「h」「j」「k」「l」キーで可能で、他にも vi の移動手段/検索/コピー&ペーストなどが利用できるようになります。

emacs キーバインド系の操作は、「Ctl + p」で上、「Ctl + n」で下、「Ctl + b」で左、「Ctl + f」で右へカーソルを移動することが可能です。他にもいろいろと有ると思いますが、私は vi 派なので詳細は不明です。(^^;