Schrift
[thread]7622[/thread]

Abbruch eines Systembefehls bei bestimmter Ausgabe



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
Gast Gast
 2006-01-15 19:15
#61918 #61918
Ich würde gerne einen Systemaufruf bei einer bestimmten Bedingung einfach abbrechen.

Beispiel unrar (Linux):

Ich führe es mit
Code: (dl )
$_=`unrar e -p[passwort]`; 

aus, wenn das Passwort aber falsch ist, arbeitet das Programm hier trotzdem weiter, also würde ich gerne die Ausgabe überprüfen, was ich ja mit
Code: (dl )
/"wrong passwort"/

einfach machen kann, doch wie breche ich den Prozess, der ja immer weiter läuft, dann bei dieser Ausgabe ab?

Gibts für den Abbruch irgendein Befehl?

Danke schonmal
renee
 2006-01-16 08:45
#61919 #61919
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Vielleicht kannst Du ja eines der CPAN:Archive::*-Module verwenden...

Oder Du kannst vielleicht mit open und einer Pipe arbeiten (siehe perldoc -f open)... Wenn in der Ausgabe das "wrong password" kommt, dann brichst Du ab...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Crian
 2006-01-16 13:59
#61920 #61920
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Code: (dl )
1
2
$_=`unrar e -p[passwort]`; 
die if /wrong passwort/;
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Dubu
 2006-01-16 21:05
#61921 #61921
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
@Crian: Ich glaube, es geht nicht darum, das Perl-Programm zu beenden, sondern das externe Programm, sobald der Text auftaucht.
esskar
 2006-01-17 01:47
#61922 #61922
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Guest,15.01.2006, 18:15]Ich führe es mit
Code: (dl )
$_=`unrar e -p[passwort]`; 

aus, wenn das Passwort aber falsch ist, arbeitet das Programm hier trotzdem weiter, also würde ich gerne die Ausgabe überprüfen, was ich ja mit
Code: (dl )
/"wrong passwort"/
[/quote]
hmm...
ich dachte immer, dass man die Stdout-Meldungen eines mit Backticks gestarteten Programms erst dann bekommt, wenn das Programm schon beendet ist.

Und das man - wie renee schon sagte - mit einer Pipe arbeiten muss, damit man zeilen/zeichenenweise auf den Output reagieren kann !?!
nepos
 2006-01-17 01:48
#61923 #61923
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, gibt unrar eventuell einen Return-Code zurueck, wenn das Passwort falsch ist?
Bringt unrar nicht von selbst ab, wenn er das falsche Passwort bekommt?
esskar
 2006-01-17 01:52
#61924 #61924
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=nepos,17.01.2006, 00:48]Bringt unrar nicht von selbst ab, wenn er das falsche Passwort bekommt?[/quote]
ich kenne es auch so, dass er solange weitermacht, bis alle Dateien abgearbeitet sind - (kenn das rar format nicht, aber könnte doch sein, dass man zwei dateien mit verschiedenen passwörtern sichern kann)
renee
 2006-01-17 06:19
#61925 #61925
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=esskar,17.01.2006, 00:47][...]
hmm...
ich dachte immer, dass man die Stdout-Meldungen eines mit Backticks gestarteten Programms erst dann bekommt, wenn das Programm schon beendet ist.
[...][/quote]
ist auch so...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
morph
 2006-01-17 10:01
#61926 #61926
User since
2007-12-06
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Quote
[...]
hmm...
ich dachte immer, dass man die Stdout-Meldungen eines mit Backticks gestarteten Programms erst dann bekommt, wenn das Programm schon beendet ist.
[...]

Jawoll, selbst wenn es sich um einen system, exec oder qx Aufruf handelt. Und es hat natürlich seinen Grund, warum unrar bei falschem Passwort nicht aussteigt.

Seid mir nicht böse Leutz, aber sollte er nicht einfach das richtige Passwort parat haben? Was wird das? Ein Bruteforce auf eine RAR-Datei? Wie das funktioniert must schon selbst herausfinden!

Mir deucht, es handele sich um Torrents?

-uw\n\n

<!--EDIT|TbHoCne|1137485202-->
renee
 2006-01-17 11:40
#61927 #61927
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Bei einem system oder exec bekommst Du keine Ausgabe...

Grund fuer ein falsches Passwort koennte auch ein Tippfehler sein...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2006-01-15 19:15.