enhance(1)
会社の Solaris10 に enhance というコマンドが入っていた。
これは本来行編集機能を持たないコマンドと端末の間でブリッジとして働き、readline そっくりな行編集機能を提供するものらしい。
このようにして起動すると
$ enhance sqlplus
sqlplus で
↑ | 履歴もどる |
←→ | カーソル移動 |
などの行編集ができるようになる。
Solaris8 には入っていなかったし、↓ここで "introduced" と書いてあるから 10 から導入されたものかもしれない。
http://partneradvantage.sun.com/protected/solaris10/adoptionkit/general/tecla.txt
作者の Martin Shepherd 氏のページを見ると、ほとんどの Unix で動くらしい。
http://www.astro.caltech.edu/~mcs/tecla/index.html
FreeBSD でも動いた。
[追記:2007-11-01]
Perl で書かれた uniread というのもある。
http://sourceforge.net/projects/uniread
Ruby でも簡単に似たスクリプトが作れるらしい。
http://osdir.com/ml/lang.io/2005-03/msg00197.html
http://osdir.com/ml/lang.io/2005-03/msg00198.html
使用例: ./rlwrap.rb cat
pty 関連は Ruby より Python の方が対応プラットフォームが多いとのこと。