スキップしてメイン コンテンツに移動

fortune用の日本語名言データ作成メモ

linuxなどUNIX系のガジェットにfortune(おみくじ)コマンドってのがある。

単純に呼び出すと、端末に一言 セリフを表示して終了する。ただそれだけのプログラム。
予め用意されたテキスト分の区切り位置をデータとして保持し
乱数で区画の文言を表示しているのだと推察する。

で、これ一般には英文を端末画面に表示するだけのように思われがちだが
かなり昔から、日本語対応の端末なら日本語も表示できる。
 以前に、むせる男の予告集や世紀末覇王の名言、天の道を往き総てを司る男の名言、蜘蛛男の名乗り口上など作ったりしたが
諸般の事情で「手控えておいたのさぁ」

今回 新たに「4次元殺法コンビの迷言」と「赤い宇宙海賊の名言」を追加して

圧縮書庫にして出す。

その前に、fortune用のデータの作り方を

まず、単純に名言、格言をまとめたテキストデータを作る。
横の文字数はあまり多くなく、ひとつあたりの行数も3行くらいに収める。
ファイルの先頭と終端は必要ないが、各名言の節目節目に「%」だけの行を入れて区切る。
本文中に「%」記号を使いたいときなどは-c オプションで区切り記号を別のものに変える。

$ strfile filename[enter]

とだけ打てば、filename.datというdatファイルが作成されてる。
元データのfilenameというテキストファイルには拡張子.txtを付けないようにする。(ただし中身は単純なテキストファイル)

試しに その場で fortune filenameと打って、目的の名言が表示されれば完了。
ディレクトリを移動すれば。fortune filenameと打っても filenameというファイルがないと怒られるので
/usr/share/games/fortune/ に テキスト文のfilenameとdatデータのfilename.datのセットをコピーする。
/usr以下の領域は管理者権限がないと書き込めないので su なり sudo で管理者としての資格で書き込むか
自分のローカル領域で使用するのなら。fortuneにファイルパスを指定して対象のファイルを呼び出せば管理者権限なしでも使える。
自分のシェルの.rcにでも ailas で 登録すれば fortune だけ打ち込めば出るようにもできる。

alias myfortune='fortune votoms raoh tenndou spiderma 4次元殺法コンビ格言集 コブラ名言集'

以上、forttune用のdatファイルの作り方と格納先のメモ 終わり。


※fortuneは 単に呼び出すと登録されたdatファイル全ての中からランダムに格言を表示するので、自分の作ったモノだけで表示したいときは
引数として、自分の作ったテキストデータのファイル名を指定する。(複数指定可)

コメント

このブログの人気の投稿

screen コマンドでの コピーペースト転送の実現について

 以前、GAME言語のあれこれについての中で、GAME80ICなどでZ80-MBC2とのscreenコマンドでのシリアル接続中にソーステキストのコピーペースト転送ができない事に触れていたが、単に使ってる環境に依存した所謂「おまかん」なのだが、回避したければ、素直にwindowsで使うか 若しくは linuxでもwine上でteratermを使えば済む話ではある。だが、我が家に於いては普段使いにできるwindows機など無い。棚の奥を探せばwin7の入った古PCが有るとは思うがボードマイコンとの接続の為だけに引っ張り出してきたいとまでは思わない。そこで ふと考えるにteratermにあってscreenやcu,minicomにないものはと、teratermには、テキスト転送中に行単位、文字単位でミリセカンドのディレイを挟む設定がある。対してlinux系のシリアル接続コマンドにそういった類のモノを知らない(単に自分が知らないだけの可能性もある) 。そこで、duckduckgo検索のサービスである「Duck.AI」に聞いてみた。自分の思いついた革新的なアイデアは大概は先人が既に思いついてる当たり前過ぎるモノというのはいつもの事であっさりと解決策を教えてくれた。

一部の関西の人にしか通じないネタ

たぶん「30年モノ」くらいだと思う?  拡大 値札に注目! ちなみに、ATMEGA32へのファーム書込用のアダプタを作るのに使用。

GAME言語 あれこれ

 MZ-700用にSDカードからMZTファイルの読み書きが出来る基板を入手して以降、MZ用のインタープリタやコンパイラの打ち込みをやってた延長でZ80-MBC2上のCPMで動作するGAMEインタープリタとコンパイラをいくつか発見。GAME-MZは国会図書館のコピーサービスで当時のアスキー誌の記事を入手済で打ち込みMZT化は済んでいるが動作の確認はしてない。 CP/M-80で動作するGAME80言語を3点ほど紹介する。 まず、動作環境は実機としては8Mhz動作のZ80-MBC2にXMODEMでPCからのファイル転送 PC側はFedora40の端末から「screen」コマンドでの接続、比較用に同じくFedora40の端末上で動作するCPMエミュレータ2種類。エミュレータで動作確認がとれたモノを実機に転送して最終動作させてみる流れ。    skyriverさんのGameOnCpm80 端末のエミュレータ上ではコピーペーストによるソースの転送もできるが ファイル読み書き用のコマンドが組み込まれているので、なぜか実機の方ではコピペに転送が出来ないのでありがたい。コンパイラも組み込まれているのでインタプリタで実行確認後、コンパイルもできる。 難点は、コンパイルの際にソース格納アドレスやデータエリア、オブジェクト格納エリアの指定をする必要がある。GAME-MZでもコンパイルの際は普通に必要な事ではあるが、自分の頭の中でシステムのメモリマップを把握しておくのが意外と面倒くさい。 コンパイルで 出来たオブジェクトをCOMファイルにするのにDDTなんかの別ツールでメモリ上に残ってるデータをCOMファイルとして保存するしかない。 COMファイル化とかを視野に入れずインタープリト、コンパイル、実行だけなら使いやすくお薦め。   ファイル操作コマンド例 files ファイル一覧表示 :\\ *.g 拡張子 .g のファイルの表示      \\のみ、\\ *.* での表示は出ない模様(単に自分の使い方が悪いだけかも?)  save(¥>FileName)とload(¥<FileName) 詳細は https://piclabo.blog.ss-blog.jp/CPM80GameCompiler...