マイブーム

Linux, perl,shellscript,DIYなどがマイブーム(不定期)

エスケープシーケンス

2024-06-11 15:04:03 | 日記
エスケープシーケンスとはなんぞや?

日本語に訳せば「逃走手順」。一体何から逃げるのか?

エスケープシーケンスで、タブは\t 改行は\n と表される。

tやnという文字の意味から逃げる(回避する)ようです。バックスラッシュ(\)の形状も後ろにどん引きしてる感じだし。

タブキーやエンターキーが無かった大昔は、エスケープキーを押して、tやnを押していたのかも?(そういう手順?)

ちょっと中止〜という時に、Ctrl+C とかよく使うように、現在ではCtrlキーやAltキーをよく使うから、コントロールシーケンスとかオルタナティヴシーケンスになってるような?。

Perl Old Documentation

2024-06-10 16:48:44 | 日記
[1] POD(パールオールドドキュメンテーション)とは
簡易なマークアップ言語
$cat hoge.pod
=pod
=head1 タイトル
こんな感じです。あちこちに空行が必要なようです。
=cut

[2] manページやHTMLページに変換
上のPOD形式の hoge.pod を
  $ sudo apt install perl-doc
  $ pod2man hoge.pod > hoge-man
  $ pod2html hoge.pod > hoge.html
で、manドキュメントHTMLページに変換できる。

[3] manページとしてみるには
  $ man -l hoge-man
で、manドキュメントとして見れる。
恒久的には、
  $ mkdir ~/man/man1
  $ mv hoge-man ~/man/man1/hoge-man.1
  $ man --manpath=~/man hoge-man
とすることで、以降は
  $man hoge-man
だけで見ることができるようになる。あまり使い勝手は良くないかも?


ASCIIコード備忘録

2024-06-09 16:54:18 | 日記
アスキーコード備忘録

アスキーコード表の0番から31番までは、見えない文字だったりする。
これらは、文字というより、ターミナルへの命令

例えば「ちょっと横にスペース開けろよ」という命令であるタブは9番。
逆スラッシュを使って、\011(8進数表示)、\x09(16進数表示)とコードネームで表せる。

タブキーが押されると、この命令コードを受信したターミナルが「はい分かりました」とタブの動作をする。


アスキーコードを3つの方法(in bash)で表示してみました。上図の左から

1) printf '\x09' | sed -n -e 'l'
2) printf '\x09'
3) printf '\x09' | cat -v -E

1)のsedだとタブは \t という逆スラッシュ表示(tはtabのt)に。逆スラッシュ(\)表示は、C言語での表示法が広まったものと言われている。

2)のprintfだけだと、タブは目には見えないが、^C、^D、など、キャレット(^)記法に。
(\003なら、3に64足した67番のアスキー文字Cを使って^C。\004なら4に64足した68番のアスキー文字Dを使って^D。)

3)のcatでもやや違いはあるもののキャレット記法に。

10番の改行は、表示されても$だったりと、ちょっと特殊な感じ。

※)ASCII(American Standard Code for information Interchange)

マウスレスでgooブログ

2024-06-07 21:29:14 | 日記
gooブログは(いやどこでもですがマウスレスを前提にしていないので、HTMLエディタでもTEXTエディタでも書き込みがキツイ
まあ、そもそもマウスレスで何をやってるだ!?という話なのですが…。

そこで、上図のように自前のHTMLタグを作り、下図のようなsedスクリプトで変換してやる事にした結果、一応キーボードだけで済むので、ブログ作成が少し楽になった?気がします。
(Sedスクリプトと言っても、
s#変換前#変換後#g
というものを羅列しただけ。後は、
sed -f sedスクリプトファイル 対象ファイル
とするだけです。)


ナンバーディスプレイアダプタ(アロハND4)からの読み出し

2024-06-07 13:23:47 | 日記

かかってきた電話番号をパソコンで読み出せるナンバーディスプレイアダプタとして、アロハND4(日興電機製作所)を使っています。

アロハシリーズは仕様書を公開してくれていますが、具体的なプログラムについてネット情報が少ない為、忙しい方のために(死語のperlですが…)基本的な部分のソースコードを載せておきます。

画像のプログラムは、本体メモリを読み出すものです。

(かかってきた電話番号を読み出す場合は、読み出し($port->read(31)) を while 文で回すだけ。

ターミナルから、 ~$ program_name & 、でバックグランドで動かしています。)

アロハND4のメモリ読み出しコード

利用する方は少ないと思いますが、固定電話をお持ちの方は迷惑電話対策をしましょう!

(注)port_name の所は、通常は /dev/ttyUSB0 か /dev/ttyUSB1だと思います。udevのルールで /dev/ttyUSB-loha などの固定名にしておくと、瞬停などによってこのport_nameが変わってしまうのを防げます。