Prty::Shell - Ausführung von Shell-Kommandos
Prty::Hash
$sh = $class->new(@opt);
Instantiiere ein Shell-Objekt, und liefere eine Referenz auf dieses Objekt zurück.
Zeichenkette, der jeder Kommandozeile im Log vorangestellt wird.
Führe Kommandos nicht aus, sondern logge sie nur (impliziert log=>1).
Log Commands to STDOUT.
Datei-Deskriptor, auf den die Logmeldungen geschrieben werden.
Zeichenkette, die jeder Meldung im Log vorangestellt wird.
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.
$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);
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.
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".
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.
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);
Wechsle in Arbeitsverzeichnis $dir. Anmerkung: Diese Änderung gilt für den gesamten Prozess, nicht nur für das Shell-Objekt.
Die Methode liefert keinen Wert zurück.
$this->back;
$this->checkError($code,$errMsg,@cmd);
Prüfe den Status einer vorhergehenden Programmausführung und löse eine Execption aus, wenn der Status ungleich 0 ist.
nichts
Prüfe den Ausführungsstatus von system():
system($cmd); Prty::Shell->checkError($?,$!,$cmd);
Prüfe den Ausführungsstatus des Backtick-Operators:
$str = `$cmd`; Prty::Shell->checkError($?,$!,$cmd);
1.109
Frank Seitz, http://fseitz.de/
Copyright (C) 2017 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Prty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prty
CPAN shell
perl -MCPAN -e shell install Prty
For more information on module installation, please visit the detailed CPAN module installation guide.