NAME
Quiq::CommandLine - Erstelle eine Unix-Kommandozeile
BASE CLASS
SYNOPSIS
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
DESCRIPTION
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.
METHODS
Konstruktor
new() - Konstruktor
Synopsis
$c
=
$class
->new;
$c
=
$class
->new(
$str
);
Arguments
Returns
Kommandozeilen-Objekt
Description
Instantiiere ein Kommandozeilen-Objekt und liefere eine Referenz auf dieses Objekt zurück. Mit $str kann der Anfang der Kommandozeile festgelegt werden.
Example
Erzeuge eine Kommandozeile für das Kommando enscript
:
$c
= Quiq::CommandLine->new(
'enscript'
);
Kommandozeilenbestandteile hinzufügen
addArgument() - Ergänze Argumente
Synopsis
$cmd
->addArgument(
@args
);
Arguments
Returns
nichts
Description
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.
Example
$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'
addBoolOption() - Ergänze boolsche Optionen
Synopsis
$cmd
->addBoolOption(
@boolOptions
);
Arguments
- @boolOptions
-
Liste von boolschen Optionen, bestehend jeweils aus der Option und zugehörigem Prädikat.
Returns
nichts
Description
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).
Example
$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
addOption() - Ergänze Option und ihre Werte
Synopsis
$cmd
->addOption(
@optVal
);
Arguments
Returns
nichts
Description
Ergänze die Kommandozeile um 0, 1 oder mehr Optionen mit zugehörigem Wert. Option und Wert werden durch ein Leerzeichen getrennt.
addEqOption() - Ergänze Option und ihre Werte
Synopsis
$cmd
->addEqOption(
@optVal
);
Alias
addLongOption()
Arguments
Returns
nichts
Description
Ergänze die Kommandozeile um 0, 1 oder mehr Optionen mit zugehörigem Wert. Option und Wert werden durch ein Gleichheitszeichen (=) getrennt.
Example
$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
addString() - Ergänze Zeichenketten
Synopsis
$cmd
->addString(
@strings
);
Arguments
Returns
nichts
Description
Ergänze die Kommandozeile um 0, 1 oder mehr Zeichenketten. Diese werden, mit Whitespace getrennt, unverändert zur Kommandozeile hinzugefügt.
Example
$c
->addString(
'2>/dev/null'
,
'|'
,
'ps2pdf'
,
'-'
,
'-'
);
ergänzt die Kommandozeile um
... 2>/dev/null | ps2pdf - -
Kommandozeile
command() - Liefere Kommandozeile
Synopsis
$cmd
=
$c
->command;
Returns
Kommandozeile (String)
Description
Liefere die Kommandozeile als Zeichenkette, wie sie z.B. von der Shell ausgeführt werden kann.
Hilfsmethoden
value() - Liefere Options- oder Argumentwert
Synopsis
$str2
=
$this
->value(
$str1
);
Arguments
Returns
Shellverträglichen Wert (String)
Description
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.
Examples
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'
VERSION
1.223
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2024 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.