command line perl (UNIX)
am 23.02.2007 22:30:58 von Ulli HorlacherIch bin ein grosser Fan von Perl-Einzeilern in der interaktiven
shell. Leider beisst sich das mit der shell-Interpolation von
Sonderzeichen und wird besonders unhandlich, wenn \ und ' Zeichen
hinzukommen.
Ich hab mir deshalb ein Command Line Perl (clp) geschrieben, das GNU
readline support hat analog zur bash (Modul Term::ReadLine::Gnu sollte
installiert sein!) und persistente und multiple history.
Vielleicht findet das jemand nuetzlich.
Beispiel (CLP ist der Prompt):
bofh:~: clp /etc/passwd
Command Line Perl with readline support, @ARGV and Specials:
? print this help
?? print comand line editing help
?! print extra history help
! show history
!! edit history
(empty line) delete current line from history
.... DD(VAR) print Data Dump for variable VAR, example: DD(%ENV)
.... #|sh-code pipe output from perl-code to sh-code, example: #| less
.... #>file write output from perl-code to file, example: #> clp.log
CLP: DD(@ARGV)
@ARGV = (
'/etc/passwd'
);
CLP: while (<>) { print if /framstag/ }
framstag:x:1023:106:Ulli Horlacher:/home/framstag:/usr/bin/bash
CLP: while (<>) { print if /framstag/ } #| wc
1 2 64
Der Perl Debugger arbeitet aehnlich, hat aber Nachteile:
- keine gespeicherte history
- alles in einem Perl-Kontext, Input ueber <> wird "aufgebraucht"
- keine Verbindung zur shell mit | > >>
Download von clp: http://wwwtest6.belwue.de/download/clp
--
-- Ullrich Horlacher --------------------- mailto:framstag@belwue.de --
BelWue Coordination phone: +49 711 685 65872
University of Stuttgart fax: +49 711 678 8363
-- Allmandring 3A, 70550 Stuttgart, Germany -- http://www.belwue.de/ --