Quiq::Shell - Ausführung von Shell-Kommandos
Quiq::Hash
$sh = $class->new(@opt);
Zeichenkette, der jeder Kommandozeile im Log vorangestellt wird.
ANSI Escape-Sequenz, die auf eine Kommandozeile angewendet wird, z.B. 'bold red'.
Führe Kommandos nicht aus, sondern logge sie nur (impliziert log=>1).
Log Commands to STDOUT.
Datei-Deskriptor, auf den die Logmeldungen geschrieben werden.
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; },
Zeichenkette, die jeder Meldung im Log vorangestellt wird.
Unterdrücke stdout und stderr.
Gib nach jedem Kommando die Zeit aus, die es benötigt hat.
Zeichenkette, die jeder Zeitausgabe vorangestellt wird.
Gib zum Schluss bei der Destrukturierung des Objekts die Gesamtausführungszeit aus.
Instantiiere ein Shell-Objekt, und liefere eine Referenz auf dieses Objekt zurück.
$sh->%METH;
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.
$str|@arr = $this->exec($cmd,@opt);
Liefere die die Programmausgabe auf dem Kanal bzw. den Kanälen $channels zurück. Mögliche Werte für $channels:
Liefere Ausgabe auf stdout, unterdrücke stderr.
Liefere Ausgabe auf stderr, unterdrücke stdout.
Liefere Ausgabe auf stdout und stderr zusammen.
Liefere Ausgabe auf stdout und stderr getrennt.
Für Beispiele siehe Abschnitt ""exec/Examples"".
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")'
Unterdrücke Programmausgabe auf stdout und stderr.
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.
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.
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.
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);
$sh->cd($dir);
Die Methode liefert keinen Wert zurück.
Wechsle in Arbeitsverzeichnis $dir. Anmerkung: Diese Änderung gilt auch für den aufrufenden Prozess, nicht nur für das Shell-Objekt.
$this->back;
$dir = $sh->backDir;
Verzeichnispfad (String)
Liefere das oberste Element des Verzeichnis-Stack ohne den Stack zu verändern.
$this->checkError($code,$errMsg,@cmd);
nichts
Prüfe den Status einer vorhergehenden Programmausführung und löse eine Execption aus, wenn der Status ungleich 0 ist.
Prüfe den Ausführungsstatus von system():
system($cmd); Quiq::Shell->checkError($?,$!,$cmd);
Prüfe den Ausführungsstatus des Backtick-Operators:
$str = `$cmd`; Quiq::Shell->checkError($?,$!,$cmd);
$sh->_logCmd($cmd);
Schreibe die Kommandozeile $cmd auf die Loghandle.
1.162
Frank Seitz, http://fseitz.de/
Copyright (C) 2019 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.