NAME
Quiq::Shell - Führe Shell-Kommandos aus
BASE CLASS
METHODS
Konstruktor/Destruktor
new() - Konstruktor
Synopsis
$sh
=
$class
->new(
@opt
);
Options
- cmdPrefix => $str (Default: '')
-
Zeichenkette, der jeder Kommandozeile im Log vorangestellt wird.
- cmdAnsiColor => $str (Default: '')
-
ANSI Escape-Sequenz, die auf eine Kommandozeile angewendet wird, z.B. 'bold red'.
- dryRun => $bool (Default: 0)
-
Führe Kommandos nicht aus, sondern logge sie nur (impliziert log=>1).
- log => $bool (Default: 0)
-
Log Commands to STDOUT.
- logDest => $fd (Default: *STDOUT)
-
Datei-Deskriptor, auf den die Logmeldungen geschrieben werden.
- logRewrite => $sub (Default: undef)
-
Callback-Methode, die die Kommandozeile vor dem Logging umschreibt. Dies ist nützlich, falls die Kommandozeile ein Passwort enthält, das im Log ausgeixt werden soll. Die Methode wird auf dem Shell-Objekt gerufen:
logRewrite
=>
sub
{
my
(
$sh
,
$cmd
) =
@_
;
# $cmd umschreiben
return
$cmd
;
},
- msgPrefix => $str (Default: '')
-
Zeichenkette, die jeder Meldung im Log vorangestellt wird.
- quiet => $bool
-
Unterdrücke stdout und stderr.
- sloppy => $bool
-
Ignoriere den Exitcode.
- time => $bool (Default: 0)
-
Gib nach jedem Kommando die Zeit aus, die es benötigt hat.
- timePrefix => $str (Default: '')
-
Zeichenkette, die jeder Zeitausgabe vorangestellt wird.
- timeSummary => $bool (Default: 0)
-
Gib zum Schluss bei der Destrukturierung des Objekts die Gesamtausführungszeit aus.
Description
Instantiiere ein Shell-Objekt, und liefere eine Referenz auf dieses Objekt zurück.
DESTROY() - Destruktor
Synopsis
$sh
->
%METH
;
Description
Wenn timeSummary gesetzt ist, wird im Zuge der Destruktuierung die Gesamtausführungszeit für alle Kommandos, die über das Shell-Objekt ausgeführt wurden, ausgegeben.
Kommando ausführen
exec() - Führe Kommando aus
Synopsis
$str
|
@arr
=
$this
->
exec
(
$cmd
,
@opt
);
Options
- -capture => $channels (Default: keiner)
-
Liefere die die Programmausgabe auf dem Kanal bzw. den Kanälen $channels zurück. Mögliche Werte für $channels:
- 'stdout'
-
Liefere Ausgabe auf stdout, unterdrücke stderr.
- 'stderr'
-
Liefere Ausgabe auf stderr, unterdrücke stdout.
- 'stdout+stderr'
-
Liefere Ausgabe auf stdout und stderr zusammen.
- 'stdout,stderr'
-
Liefere Ausgabe auf stdout und stderr getrennt.
Für Beispiele siehe Abschnitt ""exec/Examples"".
- -outputTo => $name
-
Schreibe jegliche Ausgabe von $cmd auf stdout und stderr nach $name-NNNN.log. NNNN ist eine laufende Nummer, die mit jedem Programmaufruf um 1 erhöht wird. Beispiel:
perl -MQuiq::Shell -E
'Quiq::Shell->exec("echo hallo",-outputTo=>"echo")'
- -quiet => $bool (Default: 0)
-
Unterdrücke Programmausgabe auf stdout und stderr.
- -sloppy => $bool (Default: 0)
-
Wirf keine Exception, wenn das Programm fehlschlägt, sondern liefere dessen Exitcode. Ist gleichzeitig die Option -capture angegeben, hat diese hinsichtlich des Rückgabewerts Priorität.
Returns
Der Rückgabewert richtet sich nach den Optionen @opt. Ist -capture definiert, wird die angegebene Programmausgabe geliefert. Ist -sloppy wahr, wird der Exitcode geliefert. Die Option -capture hat Priorität gegenüber der Option -sloppy. Sind weder -capture noch -sloppy angegeben, liefert die Methode keinen Wert.
Description
Führe Kommando $cmd aus. Im Falle eines Fehlers löse eine Exception aus.
Beginnt das Kommando $cmd mit einem Bindestrich, wird implizit die Option -sloppy gesetzt.
Examples
Unterdrücke Ausgabe auf stdout und stderr:
$this
->
exec
(
$cmd
,
-quiet
=>1);
Liefere Ausgabe auf stdout:
$stdout
=
$this
->
exec
(
$cmd
,
-capture
=>
'stdout'
);
Liefere Ausgabe auf stderr:
$stderr
=
$this
->
exec
(
$cmd
,
-capture
=>
'stderr'
);
Liefere Ausgabe auf stdout und stderr zusammen:
$output
=
$this
->
exec
(
$cmd
,
-capture
=>
'stdout+stderr'
);
Liefere Ausgabe auf stdout und stderr getrennt:
(
$stdout
,
$stderr
) =
$this
->
exec
(
$cmd
,
-capture
=>
'stdout,stderr'
);
Keine Exception, liefere Exitcode:
$exitCode
=
$this
->
exec
(
$cmd
,
-sloppy
=>1);
Arbeitsverzeichnis wechseln
cd() - Wechsele das Arbeitsverzeichnis
Synopsis
$sh
->cd(
$dir
);
Returns
Die Methode liefert keinen Wert zurück.
Description
Wechsle in Arbeitsverzeichnis $dir. Anmerkung: Diese Änderung gilt auch für den aufrufenden Prozess, nicht nur für das Shell-Objekt.
back() - Wechsele ins vorige Arbeitsverzeichnis zurück
Synopsis
$this
->back;
backDir() - Voriges Arbeitsverzeichnis
Synopsis
$dir
=
$sh
->backDir;
Returns
Verzeichnispfad (String)
Description
Liefere das oberste Element des Verzeichnis-Stack ohne den Stack zu verändern.
Private Methoden
_logCmd() - Logge Kommandozeile
Synopsis
$sh
->_logCmd(
$cmd
);
Description
Schreibe die Kommandozeile $cmd auf die Loghandle.
VERSION
1.225
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2025 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.