Schrift
[thread]7871[/thread]

qx mit mehreren Befehlen (Seite 2)

Leser: 2


<< |< 1 2 >| >> 20 Einträge, 2 Seiten
nepos
 2006-04-11 12:04
#64616 #64616
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Aus Sicherheitsgruenden werden Tools wie Compiler gerne mal weggelassen. Drum ist sowas auf einem Server nicht unbedingt selbstverstaendlich.
xiconfjs
 2006-04-11 13:05
#64617 #64617
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Und noch zur Vervollständigung das Script bzw. der wichtige Teil.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
my $exp = Expect->spawn("sudo passwd -i opendirectory $user_name") or die "Cannot spawn passwd: $!\n";;
my $spawn_ok;
$exp->expect($timeout,
[
qr'New password:$',
sub {
$spawn_ok = 1;
my $fh = shift;
$fh->send("$user_password_new1\n");
exp_continue;
}
],
[
'Retype new password:$',
sub {
my $fh = shift;
print $fh "$user_password_new1\n";
exp_continue;
}
],
[
'password for root:$',
sub {
my $fh = shift;
print $fh "$admin_password\n";
exp_continue;
}
],
[
eof =>
sub {
if ($spawn_ok) {
$exp->hard_close();
$result = "1";
#die "\n";
} else {
$exp->hard_close();
$result = "0";
}
}
],
[
timeout =>
sub {
die "No login.\n";
}
],
'-re', qr'[#>:] $', #' wait for shell prompt, then exit expect
);


/Edit:

Habe eine noch eine Frage. Ich habe im moment am Anfang meines Scripts dies hier eingefügt...
Code: (dl )
$Expect::Log_Stdout = 1;

...damit die User nicht mit den Rückgaben des Programm gestört werden. Doch nun möchte ich die Ausgabe doch haben, nämlich zur Auswertung, doch wie bekomme ich es hin, dass der User die Ausgabe des Programms nicht sieht, aber ich sie weiterverwenden kann. Ich habs schon mit...
Code: (dl )
$exp->log_file($filehandle);

...versucht, aber da gibt er mit dann keine Ausgabe bei $filehandle, es steht nix drin.

Thx for help\n\n

<!--EDIT|xiconfjs|1144747410-->
Crian
 2006-04-11 13:22
#64618 #64618
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Vielen Dank xiconfjs =)

Vielleicht sollten wir das mal ins Wiki stellen zum Thema Expect?
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
xiconfjs
 2006-04-11 13:46
#64619 #64619
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Falls es nicht ankam:

Quote
Habe eine noch eine Frage. Ich habe im moment am Anfang meines Scripts dies hier eingefügt...
Code: (dl )
$Expect::Log_Stdout = 1;

...damit die User nicht mit den Rückgaben des Programm gestört werden. Doch nun möchte ich die Ausgabe doch haben, nämlich zur Auswertung, doch wie bekomme ich es hin, dass der User die Ausgabe des Programms nicht sieht, aber ich sie weiterverwenden kann. Ich habs schon mit...
Code: (dl )
$exp->log_file($filehandle);

...versucht, aber da gibt er mit dann keine Ausgabe bei $filehandle, es steht nix drin.

Thx for help
Crian
 2006-04-11 13:52
#64620 #64620
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Und dein $filehandle war auch ein Filehandle einer zum Schreiben geöffneten Datei?
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
xiconfjs
 2006-04-11 13:53
#64621 #64621
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Sry...hab leider keinen Plan von Filehandles...:(
Crian
 2006-04-11 14:00
#64622 #64622
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Code: (dl )
1
2
my $filename = 'foo_bar_baz.txt';
my $filehandle = new IO::File '>' . $filename or die "Can't open '$filename': $!";
\n\n

<!--EDIT|Crian|1144749661-->
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
xiconfjs
 2006-04-11 14:05
#64623 #64623
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
aha...nagut, das ist ja nicht schwer zu kapieren, aber gibt es denn eine Möglichkeit, die Ausgaben sofort weiter zu verarbeiten, ohne das in ein File schreiben zu müssen...also direkt als Variable...ich werde nämlich aus der Doku nicht so schlau, wie ich es gern hätte.

Aber trotzdem thx an alle, die mir geholfen haben, also auch an mich selbst :D
xiconfjs
 2006-04-11 15:45
#64624 #64624
User since
2006-01-21
79 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hat echt keiner ne Ahnung, wie man mit CPAN:Except die Ausgaben des Programms in eine Variable bringt, aber so, dass der User die Ausgaben nicht sehen muss...also halt nicht sieht :cool:\n\n

<!--EDIT|xiconfjs|1144756075-->
Crian
 2006-04-11 16:10
#64625 #64625
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Könnte es sein, dass dir da my $read = $process->before(); da weiterhilft? Aber ich kenn mich mit dem Modul nicht aus, hab nur mal in der FAQ herumgeschaut.

Ansonsten nach dem Befehl den Dateihandle schließen und lesend öffnen. Oder die Datei nur in den Speicher schreiben lassen.\n\n

<!--EDIT|Crian|1144757526-->
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
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2006-04-10 12:36.