Quiq::CommandLine - Erstelle eine Unix-Kommandozeile
Quiq::Hash
use Quiq::CommandLine; my $c = Quiq::CommandLine->new('iconv'); $c->addOption( -f => 'utf-8', -t => 'latin1', ); $c->addString('|','enscript'); $c->addBoolOption( '--no-header' => 1, '--landscape' => 1, ); $c->addLongOption( '--font' => 'Courier8', ); $c->addString('2>/dev/null','|','ps2pdf','-'); $c->addArgument('/tmp/test.pdf'); my $cmd = $c->command; __END__ iconv -f utf-8 -t latin1 | enscript --no-header --landscape --font=Courier8 2>/dev/null | ps2pdf - /tmp/test.pdf
Die Klasse stellt Methoden zur Konstruktion einer Unix-Kommandozeile zur Verfügung. Die Klasse ist hilfreich, wenn einzelne Bestandteile der Kommandozeile dynamisch sind, also von Bedingungen und variablen Werten abhängen.
$c = $class->new; $c = $class->new($str);
Anfang der Kommandozeile.
Kommandozeilen-Objekt
Instantiiere ein Kommandozeilen-Objekt und liefere eine Referenz auf dieses Objekt zurück. Mit $str kann der Anfang der Kommandozeile festgelegt werden.
Erzeuge eine Kommandozeile für das Kommando enscript:
enscript
$c = Quiq::CommandLine->new('enscript');
$cmd->addArgument(@args);
Liste von Kommandozeilenargumenten.
nichts
Ergänze die Kommandozeile um 0, 1 oder mehr Argumente. Leerzeichen werden vor jedem Argument hinzugefügt. Enthält ein Argument Leerzeichen oder Shell-Metazeichen, wird es Quotes eingefasst. Ist ein Argument leer (undef oder ''), wird ein Leerstring zur Kommandozeile hinzugefügt.
$c->addArgument("/tmp/preview-$$.pdf",'',"Dies ist ein Test");
ergänzt die Kommandozeile um die drei Argumente
... /tmp/preview-4711.pdf '' 'Dies ist ein Test'
$cmd->addBoolOption(@boolOptions);
Liste von boolschen Optionen, bestehend jeweils aus der Option und zugehörigem Prädikat.
Ergänze die Kommandozeile um 0, 1 oder mehr boolsche Optionen. Eine boolsche Option ist eine Option, die keinen Wert hat, sondern vorhanden ist oder nicht, was durch das zugeörige Prädikat bestimmt wird (siehe Beispiel).
$c->addBoolOption( '--no-header' => 1, '--landscape' => 0, '--truncate-lines' => 1, );
ergänzt die Kommandozeile um die Optionen --no-header und --truncate-lines, aber nicht um die Option --landscape
--no-header
--truncate-lines
--landscape
... --no-header --truncate-lines
$cmd->addOption(@optVal);
Liste von Optionen, bestehend jeweils aus der Option und zugehörigem Wert.
Ergänze die Kommandozeile um 0, 1 oder mehr Optionen mit zugehörigem Wert. Option und Wert werden durch ein Leerzeichen getrennt.
$cmd->addEqOption(@optVal);
addLongOption()
Ergänze die Kommandozeile um 0, 1 oder mehr Optionen mit zugehörigem Wert. Option und Wert werden durch ein Gleichheitszeichen (=) getrennt.
$c->addEqOption( '--columns' => 2, '--font' => 'Courier10', '--margins' => '0:0:0:0', );
ergänzt die Kommandozeile um die Optionen
... --columns=2 --font=Courier10 --margins=0:0:0:0
$cmd->addString(@strings);
Liste von Zeichenketten.
Ergänze die Kommandozeile um 0, 1 oder mehr Zeichenketten. Diese werden, mit Whitespace getrennt, unverändert zur Kommandozeile hinzugefügt.
$c->addString('2>/dev/null','|','ps2pdf','-','-');
ergänzt die Kommandozeile um
... 2>/dev/null | ps2pdf - -
$cmd = $c->command;
Kommandozeile (String)
Liefere die Kommandozeile als Zeichenkette, wie sie z.B. von der Shell ausgeführt werden kann.
$str2 = $this->value($str1);
Zeichenkette.
Shellverträglichen Wert (String)
Analysiere Zeichenkette $str1 auf Whitespace und Shell-Metazeichen hin und liefere einen Wert, der gefahrlos als Optionswert oder Programmargument zur Kommandozeile hinzugefügt werden kann.
Undef:
$c->value(undef); => undef
Leerstring:
$c->value(""); => ''
Zeichenkette ohne Whitespace oder Shell-Metazeichen:
$c->value("/tmp/test.pdf"); => /tmp/test.pdf
Zeichenkette mit Whitespace und/oder Shell-Metazeichen:
$c->value("Dies ist ein Test"); => 'Dies ist ein Test'
1.191
Frank Seitz, http://fseitz.de/
Copyright (C) 2020 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.