dc
某所にコメントしてから改めて dc コマンドのマニュアルを読んだのだが、こんなにいろいろあったのか……。単に逆ポーランド記法の電卓だと思っていたし、使ったとしてもそんな感じであった。
レジスタなんてのがあるのも知らなかった。Brainf*ckより高級な言語なんじゃないだろうか。
……いやそんなことないな。条件分岐が数値でしかできない。文字列はマクロとしての価値しかないのか(そりゃそうだ)。とりあえず dc でエコーするプログラム。数値しか入れちゃだめ。「0」を入力すると終了する。
% dc -e ‘[?d0!=b]sa [pclax]sb lax’
? コマンドは入力文字列をコマンドとみなして実行しちゃうので、意外とうまくないなあ。