psh - interactive shell with the power of perl

※ psh はログインシェルまでこなせちゃう shell です。Perl をインタラクティブに使いたいという、当初の目的からは外れそうです。

川o・-・)<2nd life - perl でインタラクティブなシェルを実現する perlsh

とか見て入れてみっかーと思って Debian etch(4.0) で似たような感じの名前を探してみたところ、

$ apt-cache search readline | grep perl
libenv-ps1-perl - prompt string formatter
libterm-readline-gnu-perl - Perl extension for the GNU Readline/History Library
libterm-readline-perl-perl - Perl implementation of Readline
librarieslibterm-readline-zoid-perl - Pure Perl implementation of Readline libraries

てな感じ。でもやはり perlsh コマンドとやらはインストールされない。cpan から入れているわけじゃないし、ソース展開して deploy なんていやなのねんと思い、気分を変えて FreeBSD の方で

$ make search key=perlsh | grep ^Path
Path:   /usr/ports/shells/perlsh

キター。ここで Makefile を読むと

MAN1=   psh.1 \
        pshcomplete.1 \
        pshconfig.1 \
        pshdevel.1

おや? psh ?

改めて

$ apt-cache search psh | grep perl
libpdf-api2-perl - provides the functions for creating PDF documents in Perl
psh - interactive shell with the power of perl

おっ。

apt-get install psh
$ psh
psh% File::Glob::<TAB>
AUTOLOAD                                bootstrap
GLOB_ALPHASORT                          bsd_glob
GLOB_BRACE                              constant
GLOB_CSH                                csh_glob
GLOB_ERROR                              doglob
GLOB_NOMAGIC                            glob
GLOB_QUOTE                              import
GLOB_TILDE

おぉ。豪快に補完される。

ステキ。

※ OSX 10.3 + PPC の環境では cpan からインストールしたあとに .cpan/build/psh-1.8 内で make install した。これで合ってるのかどうかよく分からないけど動いてる。Term::Readline::Gnu はコンパイルにコケるので、Term::Readline::Perl にした。

あーれー? なんか普通のコマンドも補完するな。んー? なんか思っていたのと違う?

More